我想从IMDB网站获得电影评级。例如,我有一个url 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];
但它不起作用,我不知道为什么!
发布于 2014-04-07 17:06:43
我正在签出脚本,但是您的数组没有包含任何内容,使用: 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检查代码
好像是出了差错
我想你可以在这个问题中找到更多的答案:使用文件get内容的json到php数组
发布于 2014-04-07 17:01:58
我假定PHP.ini设置allow_url_fopen
是禁用的,这意味着不能使用文件族函数(fopen,.)打开远程URI(如http(s)等)。
也请参考其配置值描述,根据它是一个系统范围的设置,所以我认为您不能使用set()覆盖它。
或者,您可以使用cURL扩展,有关如何使用它的详细信息,请参阅其文档。
发布于 2014-04-07 17:26:28
请运行php信息以检查是否将allow_url_fopen设置为ON。
php_info();
但是使用CURL来获取内容,这将模拟实际的web客户端。不要打开这个选项,因为它对安全没有好处
https://stackoverflow.com/questions/22918507
复制相似问题