无法获得file_get_contents函数的内容

时间:2014-04-07 16:53:07

标签: php file-get-contents imdb

我想从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 个答案:

答案 0 :(得分:1)

我假设PHP.ini设置allow_url_fopen被禁用,这意味着无法使用文件系列函数(fopen,..)打开远程URI(即http等)

另请参阅its config value description,因为它是系统范围的设置,因此我认为您无法使用ini_set()覆盖它。

或者您可以使用cURL extension,有关如何使用它的详细信息,请参阅其文档。

答案 1 :(得分:1)

我正在检查脚本,但是你的数组中没有包含任何内容: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 to php array using file get contents

答案 2 :(得分:1)

请运行php info以检查allow_url_fopen是否设置为ON

php_info();

但是使用CURL来获取模拟真实Web客户端的内容。 不要打开此选项,因为它不利于安全目的