当前位置:首页 > PHP教程 > php应用 > 列表

php简单实现短网址(短链)还原的方法(测试可用)

发布:smiling 来源: PHP粉丝网  添加日期:2021-08-02 15:06:58 浏览: 评论:0 

这篇文章主要介绍了php简单实现短网址还原的方法,以脚本之家短网址http://t.cn/heEHwk为例介绍了php还原短网址的实现技巧,非常简单实用,需要的朋友可以参考下

本文实例讲述了php简单实现短网址还原的方法,分享给大家供大家参考,具体如下:

这里以脚本之家https://www.phpfensi.com的短网址http://t.cn/heEHwk为例运行

具体代码如下:

  1. $info1 = '亲!暂不能解析此类短网址。'; 
  2. $info2 = '亲!网址解析失败,请重试。'; 
  3. $info3 = '
    ; 
  4. $info4 = '" target="_blank">立即访问>>'; 
  5. $info5 = '亲!不是短网址或无效。'; 
  6. function unshort($url) 
  7. { 
  8. global $info1,$info2,$info3,$info4; 
  9.  $curl = curl_init(); 
  10.  curl_setopt($curl, CURLOPT_URL, $url); 
  11.  curl_setopt($curl, CURLOPT_RETURNTRANSFER,1); 
  12.  curl_setopt ($curl, CURLOPT_USERAGENT, 'Mozilla/8.0 (compatible; MSIE 8.0; Windows 7'); 
  13.  curl_setopt($curl, CURLOPT_HEADER, 1); 
  14.  curl_setopt($curl, CURLOPT_NOBODY, 0); 
  15.  curl_setopt($curl, CURLOPT_TIMEOUT, 15); 
  16.  curl_setopt($curl,CURLOPT_ENCODING, 'gzip'); 
  17.  $data = curl_exec($curl); 
  18.  if(!emptyempty($data)){ 
  19.  $message = curl_getinfo($curl); 
  20.   curl_close($curl); 
  21.    $status = $message['http_code']; 
  22.    if ($status == '301' || $status == '302' ){ 
  23.     $UrlHeader = (get_headers($url,1)); 
  24.     $unurl = $UrlHeader[Location]; 
  25.     if(is_array($unurl)) { 
  26.      $unurl = $unurl[0]; 
  27.      $unurl .=$info3.$unurl.$info4; 
  28.      return $unurl; 
  29.      } 
  30.     else { 
  31.     $unurl .=$info3.$unurl.$info4; 
  32.     return $unurl; 
  33.     } 
  34.    } 
  35.   return $info1; 
  36.  } 
  37.  return $info2; 
  38. } 
  39. function adfunshort($url) 
  40. { 
  41. global $info3,$info4,$info5; 
  42.  $c = file_get_contents($url); 
  43.  $p = "/url = '(.*)';/isU"; 
  44.  preg_match($p, $c, $content); 
  45.  $unurl = $content[1]; 
  46.  if($unurl == '') { 
  47.   return $info5; 
  48.  } 
  49.  else { 
  50.   $unurl .=$info3.$unurl.$info4; 
  51.   return $unurl; 
  52.  } 
  53. } 
  54. ?> 
  55. "" method="post"> 
  56. 短网址:"text" name="turl" class="inurl" size="26" /> 
  57. "hidden" name="url_done" value="done" /> 
  58. "submit" value="提交" class="suburl" /> 
  59.  
  60. "trurl"> 
  61. $turl = $_POST['turl']?$_POST['turl']:""; 
  62. $url_done= $_POST['url_done']?$_POST['url_done']:""; 
  63. if ($url_done == 'done'){ 
  64. $http = substr($turl,0,7); 
  65.  if ($http != 'http://' && $http != 'https:/'){ 
  66.   $turl = 'http://'.$turl; 
  67.   } 
  68.   $tturl = substr($turl,0,11); 
  69.   if ($tturl == 'http://adf.'){ 
  70.   $longurl = adfunshort($turl); 
  71.   }else { 
  72.   $longurl = unshort($turl); 
  73.  }echo "短网址 ".$turl." 的真实网址为:$longurl "; 
  74. } 
  75. ?>

Tags: php短网址 php短链接

分享到: