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、通常の応答が返されます。

URLが完全に機能するので、理由がよくわかりません。

var_dumponは。を$html返しますbool (false)

私はphp5.3.1を持っていて、 php.iniallow_url_fopenでオンになっています

4

1 に答える 1

4

cURLユーザーエージェントを使用して設定します。どうやらthepriatebay.seはユーザーエージェントなしではリクエストに応答しません。

これにより、ブラウザのユーザーエージェントが取得され、ターゲットに送信されます。

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

cURLを介してWebページをリクエストするには、以下を使用します。

// 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 に答える