2

尝试使用简单的 html 解析器解析 html 时,我没有得到任何响应。这是代码:

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

$html什么都不返回。但是,当我使用这个 url 做同样的事情时http://thepiratebay.se/browse/207/0/7,我得到一个正常的响应。

我真的不明白为什么,因为网址完美无缺。

A var_dumpon$html返回 a bool (false)

我有 php 5.3.1 并且allow_url_fopenphp.ini中

4

1 回答 1

4

使用cURL并设置用户代理。显然 thepriatebay.se 不会在没有用户代理的情况下响应请求。

这会抓取浏览器的用户代理并将其发送到目标。

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

要通过 cURL 请求网页,请使用以下命令:

// 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;
于 2013-03-26T12:53:28.637 回答