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

学习php简单实现短网址(短链)还原的方法

发布:smiling 来源: PHP粉丝网  添加日期:2022-07-24 10:01:16 浏览: 评论:0 

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

  1. <?php 
  2.  
  3. $info1 = '亲!暂不能解析此类短网址。'
  4.  
  5. $info2 = '亲!网址解析失败,请重试。'
  6.  
  7. $info3 = '<br/><b><a href="'
  8.  
  9. $info4 = '" target="_blank">立即访问>></a></b>'
  10.  
  11. $info5 = '亲!不是短网址或无效。'
  12.  
  13. function unshort($url
  14.  
  15.  
  16. global $info1,$info2,$info3,$info4
  17.  
  18.  $curl = curl_init(); 
  19.  
  20.  curl_setopt($curl, CURLOPT_URL, $url); 
  21.  
  22.  curl_setopt($curl, CURLOPT_RETURNTRANSFER,1); 
  23.  
  24.  curl_setopt ($curl, CURLOPT_USERAGENT, 'Mozilla/8.0 (compatible; MSIE 8.0; Windows 7'); 
  25.  
  26.  curl_setopt($curl, CURLOPT_HEADER, 1); 
  27.  
  28.  curl_setopt($curl, CURLOPT_NOBODY, 0); 
  29.  
  30.  curl_setopt($curl, CURLOPT_TIMEOUT, 15); 
  31.  
  32.  curl_setopt($curl,CURLOPT_ENCODING, 'gzip'); 
  33.  
  34.  $data = curl_exec($curl); 
  35.  
  36.  if(!emptyempty($data)){ 
  37.  
  38.  $message = curl_getinfo($curl); 
  39.  
  40.   curl_close($curl); 
  41.  
  42.    $status = $message['http_code']; 
  43.  
  44.    if ($status == '301' || $status == '302' ){ 
  45.  
  46.     $UrlHeader = (get_headers($url,1)); 
  47.  
  48.     $unurl = $UrlHeader[Location]; 
  49.  
  50.     if(is_array($unurl)) { 
  51.  
  52.      $unurl = $unurl[0]; 
  53.  
  54.      $unurl .=$info3.$unurl.$info4
  55.  
  56.      return $unurl
  57.  
  58.      } 
  59.  
  60.     else { 
  61.  
  62.     $unurl .=$info3.$unurl.$info4
  63.  
  64.     return $unurl
  65.  
  66.     } 
  67.  
  68.    } 
  69.  
  70.   return $info1
  71.  
  72.  } 
  73.  
  74.  return $info2
  75.  
  76.  
  77. function adfunshort($url
  78.  
  79.  
  80. global $info3,$info4,$info5
  81.  
  82.  $c = file_get_contents($url); 
  83.  
  84.  $p = "/url = '(.*)';/isU"
  85.  
  86.  preg_match($p$c$content); 
  87.  
  88.  $unurl = $content[1]; 
  89.  
  90.  if($unurl == '') { 
  91.  
  92.   return $info5
  93.  
  94.  } 
  95.  
  96.  else { 
  97.  
  98.   $unurl .=$info3.$unurl.$info4
  99.  
  100.   return $unurl
  101.  
  102.  } 
  103.  
  104.  
  105. ?> 
  106.  
  107. <form action="" method="post"
  108.  
  109. 短网址:<input type="text" name="turl" class="inurl" size="26" /> 
  110.  
  111. <input type="hidden" name="url_done" value="done" /> 
  112.  
  113. <input type="submit" value="提交" class="suburl" /> 
  114.  
  115. </form> 
  116.  
  117. <p id="trurl"
  118.  
  119. <?php 
  120.  
  121. $turl = $_POST['turl']?$_POST['turl']:""
  122.  
  123. $url_done$_POST['url_done']?$_POST['url_done']:""
  124.  
  125. if ($url_done == 'done'){ 
  126.  
  127. $http = substr($turl,0,7); 
  128.  
  129.  if ($http != 'http://' && $http != 'https:/'){ 
  130.  
  131.   $turl = 'http://'.$turl
  132.  
  133.   } 
  134.  
  135.   $tturl = substr($turl,0,11); 
  136.  
  137.   if ($tturl == 'http://adf.'){ 
  138.  
  139.   $longurl = adfunshort($turl); 
  140.  
  141.   }else { 
  142.  
  143.   $longurl = unshort($turl); 
  144.  
  145.  }echo "短网址 ".$turl." 的真实网址为:<br />$longurl "
  146.  
  147.  
  148. ?>

Tags: php短网址还原

分享到: