2013-03-26 84 views
2

當試圖解析html時使用簡單的html解析器,我沒有得到任何迴應。這裏是代碼:

$html = new simple_html_dom(); 
$html->file_get_html('http://thepiratebay.se/search/1080p/0/7/207'); 

$html什麼也沒有返回。但是,當我使用此網址做相同的事情時,http://thepiratebay.se/browse/207/0/7,我得到了正常的迴應。

我真的不明白爲什麼,因爲網址完美。

A var_dump on $html返回bool (false)

我有PHP 5.3.1和allow_url_fopen是在php.ini中

+0

我很抱歉,但我沒有真正在這個問題笑...你得到任何形式的任何錯誤? – Seer 2013-03-26 12:18:45

回答

3

使用cURL,並設置一個用戶代理。顯然,沒有用戶代理的情況下,priatebay.se不會響應請求。

這會抓取瀏覽器的用戶代理並將其發送到目標。

curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); 

要通過捲曲請求網頁,使用以下命令:

// Start a cURL resource 
$ch = curl_init(); 
// Set options for the cURL 
curl_setopt($ch, CURLOPT_URL, 'http://thepiratebay.se/search/1080p/0/7/207'); // target 
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // provide a user-agent 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // follow any redirects 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // return the result 
// Execute the cURL fetch 
$result = curl_exec($ch); 
// Close the resource 
curl_close($ch); 
// Output the results 
echo $result; 
+0

它的工作非常感謝! – user2211227 2013-03-26 13:17:38