常见的短网址都是通过 301 或 302 跳转的方式实现重定向到目标网站的,因此我们可以使用 PHP 的 curl_getinfo
来取得 header 中的重定向地址,也就是短网址对应的原始网址(嗯,原理就是这么简单……
完整的函数代码如下:
PHP
- /***
- * 万能短网址还原函数
- * @param $shortUrl 短网址
- * @return 原始网址 | 空(还原失败或非短网址)
- */
- function restoreUrl($shortUrl) {
- $curl = curl_init();
- curl_setopt($curl, CURLOPT_URL, $shortUrl);
- curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
- curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0');
- curl_setopt($curl, CURLOPT_HEADER, true);
- curl_setopt($curl, CURLOPT_NOBODY, false);
- curl_setopt($curl, CURLOPT_TIMEOUT, 15);
- curl_setopt($curl, CURLOPT_SSL_VERIFYPEER,