2012-07-15 27 views

回答

5

變化php.iniuser_agent值,應在任何利用所述HTTP流包裝等DOMDocument::loadHtmlFile(), file_get_contents()的發送等

$fake_user_agent = "Mozilla/5.0 (X11; Linux i686) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11"; 
ini_set('user_agent', $fake_user_agent); 

同樣也可以在一個Apache .htaccess通過來完成如果您的服務器配置允許,請設置php_value user_agent

+0

哦有趣,不知道這種可能性 – j0k 2012-07-16 06:28:40

2

嗯,我認爲最好的方法是以不同的方式檢索內容並在之後加載文檔。你可以用cURL來做到這一點。

$useragent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1"; 

$ch = curl_init(); 

// set user agent 
curl_setopt($ch, CURLOPT_USERAGENT, $useragent); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2); 
curl_setopt($ch, CURLOPT_TIMEOUT, 60); 
curl_setopt($ch, CURLOPT_HEADER, 0); 

// grab content from the website 
$content = curl_exec($ch); 

// load the content in your dom 
$html = new DOMDocument(); 
$html->loadHTML($content);