Home  >  Article  >  Backend Development  >  Parse the PHP version to obtain the redirected address (code)_PHP tutorial

Parse the PHP version to obtain the redirected address (code)_PHP tutorial

WBOY
WBOYOriginal
2016-07-21 15:02:411091browse

Copy code The code is as follows:

//取重定向的地址
 class RedirectUrl{
     //地址
     var $url;
     //初始化地址
     function RedirectUrl($url){
         $this->url = $url;
     }
     /**
* get_redirect_url()
* Get the redirected address
* *
* @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.1rn";
         $request .= 'Host: ' . $url_parts['host'] . "rn";
         $request .= "Connection: Closernrn";
         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()
* Get all redirect addresses
* *
* @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()
* Get the actual address
* *
* @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
* Get the address of the final image to be displayed
*
* @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;
}
//Reference
echo "< ;img src='".get_show_pic("http://i2.ku6img.com/encode/picpath/2010/12/9/14/1294948410019/5.jpg")."'/>";
?>

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/327892.htmlTechArticleCopy the code The code is as follows: //Get the redirected address class RedirectUrl{ //Address var $url; // Initialization address function RedirectUrl($url){ $this-url = $url; } /** * get_redirect_url()...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn