最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解析php 版獲取重定向后的地址(代碼)

 更新時(shí)間:2013年06月26日 11:54:49   作者:  
本篇文章是對(duì)php版獲取重定向后的地址實(shí)現(xiàn)代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
復(fù)制代碼 代碼如下:

//取重定向的地址
 class RedirectUrl{
     //地址
     var $url;
     //初始化地址
     function RedirectUrl($url){
         $this->url = $url;
     }
     /**
      * get_redirect_url()
      * 取重定向的地址
      *
      * @param string $url
      * @return string
      */
     private function get_redirect_url($url){
         $redirect_url = null;

         $url_parts = @parse_url($url);
         if (!$url_parts) return false;
         if (!isset($url_parts['host'])) return false; //can't process relative URLs
         if (!isset($url_parts['path'])) $url_parts['path'] = '/';

         $sock = fsockopen($url_parts['host'], (isset($url_parts['port']) ? (int)$url_parts['port'] : 80), $errno, $errstr, 30);
         if (!$sock) return false;

         $request = "HEAD " . $url_parts['path'] . (isset($url_parts['query']) ?'?'.$url_parts['query'] : '') . " HTTP/1.1\r\n";
         $request .= 'Host: ' . $url_parts['host'] . "\r\n";
         $request .= "Connection: Close\r\n\r\n";
         fwrite($sock, $request);
         $response = '';
         while(!feof($sock)) $response .= fread($sock, 8192);
         fclose($sock);

         if (preg_match('/^Location: (.+?)$/m', $response, $matches)){
             return trim($matches[1]);
         } else {
             return false;
         }
     }

     /**
      * get_all_redirects()
      * 取所有重定向地址
      *
      * @param string $url
      * @return array
      */
     private function get_all_redirects($url){
         $redirects = array();
         while ($newurl = $this->get_redirect_url($url)){
             if (in_array($newurl, $redirects)){
                 break;
             }
             $redirects[] = $newurl;
             $url = $newurl;
         }
         return $redirects;
     }

     /**
      * get_final_url()
      * 取實(shí)際地址
      *
      * @param string $url
      * @return string
      */
     function get_final_url(){
         $redirects = $this->get_all_redirects($this->url);

         if (count($redirects)>0){
             return array_pop($redirects);
         } else {
             return $this->url;
         }
     }
 }

 /**
  * get_show_pic
  * 取最終要顯示的圖片地址
  *
  * @param string $url
  * @return  string
  */
 function get_show_pic($url,$noimg ='noimg.gif',$newimg="http://special.ku6img.com/projects/2010/d-color/images/slt-1.jpg"){
     $obj = new RedirectUrl($url);

     $realurl = $obj->get_final_url();

     if(strpos($realurl,$noimg)>0){
         return $newimg;
     }
     return $url;
 }
 //參考
 echo "<img src='".get_show_pic("http://i2.ku6img.com/encode/picpath/2010/12/9/14/1294948410019/5.jpg")."'/>";
 ?>

相關(guān)文章

  • php獲取今日開(kāi)始時(shí)間和結(jié)束時(shí)間的方法

    php獲取今日開(kāi)始時(shí)間和結(jié)束時(shí)間的方法

    本篇文章實(shí)例講述了php獲取今日開(kāi)始時(shí)間和結(jié)束時(shí)間的方法,具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-02-02
  • PHP源代碼數(shù)組統(tǒng)計(jì)count分析

    PHP源代碼數(shù)組統(tǒng)計(jì)count分析

    偶然在百度知道中看到有個(gè)同學(xué)問(wèn)起count及strlen的效率問(wèn)題,好吧這個(gè)問(wèn)題我當(dāng)初沒(méi)理解透徹,認(rèn)為其不屬兩個(gè)不一樣的東西不可比較,后來(lái)看了樓主的回復(fù)才反應(yīng)過(guò)來(lái),所以自己也去找了下源碼查看下?,F(xiàn)在總結(jié)下查看到的結(jié)果并記錄之。
    2011-08-08
  • 實(shí)例講解如何在PHP的Yii框架中進(jìn)行錯(cuò)誤和異常處理

    實(shí)例講解如何在PHP的Yii框架中進(jìn)行錯(cuò)誤和異常處理

    這篇文章主要介紹了如何在PHP的Yii框架中進(jìn)行錯(cuò)誤和異常處理的實(shí)例,重點(diǎn)講解了使用錯(cuò)誤處理器的方法,需要的朋友可以參考下
    2016-03-03
  • PHP使用GD庫(kù)輸出漢字的方法【測(cè)試可用】

    PHP使用GD庫(kù)輸出漢字的方法【測(cè)試可用】

    這篇文章主要介紹了PHP使用GD庫(kù)輸出漢字的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了php使用GD庫(kù)進(jìn)行圖形繪制與漢字輸出的相關(guān)操作技巧,需要的朋友可以參考下
    2016-11-11
  • JS實(shí)現(xiàn)php的偽分頁(yè)

    JS實(shí)現(xiàn)php的偽分頁(yè)

    假如某一個(gè)頁(yè)面的數(shù)據(jù)很多,不方便全都顯示出來(lái),而且假設(shè)里面有個(gè)播放器,不希望在翻頁(yè)的時(shí)候播放器會(huì)終止的話,就可以采用這個(gè)方法盡管可以用Ajax,但是在數(shù)據(jù)比較少的情況下,這個(gè)方法更有優(yōu)勢(shì)
    2008-05-05
  • 詳解PHP中的狀態(tài)模式編程

    詳解PHP中的狀態(tài)模式編程

    這篇文章主要介紹了詳解PHP中的狀態(tài)模式編程,有利于團(tuán)隊(duì)協(xié)作編程,需要的朋友可以參考下
    2015-08-08
  • php面向?qū)ο蟪绦蛟O(shè)計(jì)中self與static的區(qū)別分析

    php面向?qū)ο蟪绦蛟O(shè)計(jì)中self與static的區(qū)別分析

    這篇文章主要介紹了php面向?qū)ο蟪绦蛟O(shè)計(jì)中self與static的區(qū)別,結(jié)合實(shí)例形式分析了php面向?qū)ο蟪绦蛟O(shè)計(jì)中self與static的功能、以及在繼承過(guò)程中實(shí)現(xiàn)多態(tài)的區(qū)別,并總結(jié)了static靜態(tài)延遲綁定的原理,需要的朋友可以參考下
    2019-05-05
  • php中strtotime函數(shù)性能分析

    php中strtotime函數(shù)性能分析

    strtotime()是php中的時(shí)間函數(shù);其功能是:將任何字符串形式的日期,時(shí)間轉(zhuǎn)換成對(duì)應(yīng)的Unix 時(shí)間戳。今天我們是通過(guò)具體的實(shí)例來(lái)詳細(xì)分析下strtotime()函數(shù)的性能問(wèn)題
    2016-11-11
  • php5.2.0內(nèi)存管理改進(jìn)

    php5.2.0內(nèi)存管理改進(jìn)

    php5.2.0內(nèi)存管理改進(jìn)...
    2007-01-01
  • php加速器eAccelerator的配置參數(shù)、API詳解

    php加速器eAccelerator的配置參數(shù)、API詳解

    eAccelerator是一個(gè)開(kāi)源PHP加速器,優(yōu)化程序,編碼器和動(dòng)態(tài)內(nèi)容緩存。它通過(guò)在編譯狀態(tài)下對(duì)它們進(jìn)行緩存以提高PHP腳本的性能,所以那些 系統(tǒng)開(kāi)銷在編譯時(shí)幾乎可以被消除
    2014-05-05

最新評(píng)論

图片| 慈溪市| 灌南县| 铜陵市| 七台河市| 丰原市| 黄大仙区| 台州市| 嘉义市| 法库县| 常熟市| 岳阳县| 大新县| 盐源县| 横山县| 乐东| 建湖县| 方正县| 乌拉特前旗| 普宁市| 子长县| 韩城市| 开化县| 辛集市| 仪陇县| 固始县| 武清区| 沐川县| 穆棱市| 会宁县| 虞城县| 呼伦贝尔市| 冷水江市| 淮滨县| 仁布县| 麻栗坡县| 东兰县| 正定县| 隆安县| 大兴区| 德清县|