2013-03-26 3 views
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 работает отлично.

A var_dump$html возвращает bool (false).

У меня есть PHP 5.3.1 и allow_url_fopen на в php.ini

+0

Мне очень жаль, но я искренне посмеяться над этим вопросом ... Получаете ли Вы какие-либо ошибки любого рода? – Seer

ответ

3

Используйте cURL и установить агента пользователя. Очевидно, theответственныйbay.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; 
+0

Это очень понравилось! – user2211227

Смежные вопросы