Почему PHP file_get_contents не работает для некоторых URL?
<?php
$html = file_get_contents('http://modagram.com');
?>
Для выше я получаю это предупреждение:
PHP Warning: file_get_contents(http://modagram.com): failed to open stream: HTTP request failed! in /var/www/html/scraping/test.php on line 2
Как сказал @MarkBaker в комментарии, веб-сервер, вероятно, блокирует неизвестных UserAgents, попробуйте подделать один:
$context = stream_context_create([
'http' => [
'user_agent' => 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)',
],
]);
$html = file_get_contents('http://modagram.com', false, $context);
print_r($http_response_header); // see response headers
Других решений пока нет …