简单的html dom解析器$ html是空的

时间:2013-03-26 11:35:28

标签: php simple-html-dom

当尝试使用简单的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执行相同的操作时,我得到了正常的响应。

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

var_dump上的$html会返回bool (false)

我有php 5.3.1并且 php.ini中有allow_url_fopen

1 个答案:

答案 0 :(得分: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;