通常,在百度輸入關鍵詞搜索出現的列表頁,點擊目標鏈接,然而跳轉的時候卻是百度地址,經過百度解析,才真的跳到目標頁面。
在SEO中,經常需要看下自己的網站排名,又不想手動每天手動去點,可用以下方法去得到目標地址。
原理相當的簡單:模擬請求,得到真正的地址。
<?php $url = "http://www.baidu.com/link?url=nS2MGJqjJ4zBBpC8yDF8xDh8vibi1lVeE7gGr9UONBu"; $info = parse_url($url); $fp = fsockopen($info['host'], 80,$errno, $errstr, 30); fputs($fp,"GET {$info['path']}?{$info['query']} HTTP/1.1\r\n"); fputs($fp, "Host: {$info['host']}\r\n"); fputs($fp, "Connection: close\r\n\r\n"); $rewrite = ''; while(!feof($fp)) { $line = fgets($fp); if($line != "\r\n" ) { if(strpos($line,'Location:') !== false) { $rewrite = str_replace(array("\r","\n","Location: "),'',$line); } }else { break; } } var_dump($rewrite); //結果顯示:string(22) "http://www.google.com/" ?>
將http://www.baidu.com/link?url=nS2MGJqjJ4zBBpC8yDF8xDh8vibi1lVeE7gGr9UONBu解析為http://www.google.com/