- <?php
- //取重定向的地址
- 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()
- * 取实际地址
- *
- * @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="<a href="http://special.ku6img.com/projects/2010/d-color/images/slt-1.jpg">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("<a href="http://i2.ku6img.com/encode/picpath/2010/12/9/14/1294948410019/5.jpg">http://i2.ku6img.com/encode/picpath/2010/12/9/14/1294948410019/5.jpg")."'/>";
- ?>
- //该片段来自于http://www.codesnippet.cn/detail/240120131919.html
来源: http://www.codesnippet.cn/detail/240120131919.html