Не удается получить контент с помощью функции file_get_contents
Я хочу получить рейтинг фильма на сайте IMDB. Например, у меня есть адрес http://p.media-imdb.com/static-content/documents/v1/title/tt1520211/ratings%3Fjsonp=imdb.rating.run:imdb.api.title.ratings/data.json Запустите его, и вы увидите, что рейтинг фильма 8,7, и я хочу его получить, поэтому я использовал этот запрос:
$s="http://p.media-imdb.com/static-content/documents/v1/title/tt1520211/ratings%3Fjsonp=imdb.rating.run:imdb.api.title.ratings/data.json";
$s = file_get_contents($s);
$s=explode('rating":',$s);
$s=explode(',"rating',$s[1]);
echo $s[0];
Но это не работает, и я не знаю почему!
3 ответа
Я проверяю сценарий, но ваш массив не содержит ничего, проверьте его: print_r($s) вывод:
Array ( [0] => )
обновленный
Когда вы показываете контент, он показывает:
‹5KOÃ0„ÿJµ'šÄvÞ9U‚.‰³›LÁ¢y`o*UUþ;v ·õÎìÌg3ôÇØj6ãgl—ñáF‡¬©¹Ñ4#ÓH µ†ÏxÛlŽödñ³ÀñKï¥4Óe*€èˆ2¤DÕŠH×U‘zÔ"‡?q°Ó¡5^5i\gÕ’Ü´Ø¡ðÀ×Ùd“žMÌ¡õŸ.ԚЗlÛ„YæJ()/l«€ù…݇>{ÿKí_0_Þa BÔÚR£„{êôè¿æ lx¤š*.ï§iÙC—…Rb]1“$æ6
поэтому ваш разрыв также будет проверен на эту строку.
Код:
$s="http://p.media-imdb.com/static-content/documents/v1/title/tt1520211/ratings%3Fjsonp=imdb.rating.run:imdb.api.title.ratings/data.json";
$s = file_get_contents($s);
/*$s=explode('"rating":',$b);
$s=explode('"rating":',$b[1]);
print_r($s);*/
print($s);
обновлено: также проверьте код с JSONLint
похоже, есть ошибка
Я думаю, что вы можете найти больше в этом вопросе для вашего ответа: массив JSON в PHP с помощью файла получить содержимое
Я предполагаю настройку PHP.ini allow_url_fopen
отключено, что означает, что удаленные URI (например, http(s) и т. д.) не могут быть открыты с помощью функций семейства файлов (fopen,..)
Пожалуйста, также обратитесь к описанию его значения конфигурации, согласно которому это общесистемный параметр, поэтому я думаю, что вы не можете переопределить его, используя ini_set ().
В качестве альтернативы вы можете использовать расширение cURL, подробности о том, как его использовать, см. В его документации.
Пожалуйста, запустите php info, чтобы проверить, установлен ли параметр allow_url_fopen в положение ON
php_info();
Но используйте CURL для получения контента, имитирующего реальный веб-клиент. Не включайте эту опцию, потому что она не подходит для целей безопасности