Предполагая, что file_get_contents
делает http-запрос, было бы хорошо проверить указанный пользовательский агент.
Я слышал о проблемах при получении данных с некоторыми пользовательскими агентами.Взгляните на этот вопрос .
Вы можете указать другие параметры (включая пользовательский агент), используя контекст потока:
<?php
$opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"Accept-language: en\r\n" .
"Cookie: foo=bar\r\n"
)
);
$context = stream_context_create($opts);
// Open the file using the HTTP headers set above
$file = file_get_contents('http://www.example.com/', false, $context);
Взгляните на file_get_contents документы .
Также, как сказал Джек, cURL - лучший вариант.
РЕДАКТИРОВАТЬ:
Вы меня не так поняли,То, что вы должны добавить, это другой пользовательский агент.Например, используя пользовательский агент из Mozilla Firefox, вы получите 4 результата:
<?php
$opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"Accept-language: en\r\n" .
"User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; es-AR; rv:1.9.2.23) Gecko/20110921 Ubuntu/10.10 (maverick) Firefox/3.6.23"
)
);
$context = stream_context_create($opts);
// Open the file using the HTTP headers set above
$file = file_get_contents('http://en.wikipedia.org/wiki/Category:Upcoming_singles', false, $context);
print $file;
Но, я думаю, это не «законно», не стоит обманывать это.Я думаю, что должен быть любой другой пользовательский агент, который Википедия предоставляет для извлечения своих данных из внешних приложений.