来自url的php json,“没有这样的文件或目录”

时间:2012-03-11 15:58:01

标签: php jquery

<?php

header('Cache-Control: no-cache, must-revalidate');
header('Content-type: application/json'); 

$jsonData = json_decode(file_get_contents(urlencode('https://chart.googleapis.com/chart?cht=p3&chs=250x100&chd=t:60,40&chl=Hello|World&chof=json')));

echo $jsonData;

?>

错误:failed to open stream: No such file or directory in <b>C:\wamp\www\file.php

我想将结果打印为json字符串,以便我可以使用jquery ajax处理它。我错过了什么?感谢

3 个答案:

答案 0 :(得分:2)

从代码中删除urlencode函数。这会将整个URL格式化为字符串,以作为请求中的参数发送。 您只想将网址传递给file_get_contents

答案 1 :(得分:2)

您发现自己的网址中有空格(来自Google的结果为400)。此外,您不想在此处使用urlencode()

我还猜测你不想使用json_decode(),因为这会返回一个对象或数组。

所以,试试这个

readfile('https://chart.googleapis.com/chart?cht=p3&chs=250x100&chd=t:60,40&chl=Hello|World&chof=json');
exit;

要执行您尝试的操作,请注意manual

中的此注释
  

如果已启用fopen包装,则可以使用此函数将URL用作文件名。有关如何指定文件名的更多详细信息,请参阅fopen()。有关各种包装器具有哪些功能的信息,使用说明以及它们可能提供的任何预定义变量的信息,请参阅支持的协议和包装器。

如果您无法配置服务器,则需要查看cURLsockets扩展程序

答案 2 :(得分:0)

<?php

header('Cache-Control: no-cache, must-revalidate');
header('Content-type: application/json'); 

$jsonData = json_decode(file_get_contents('https://chart.googleapis.com/chart?cht=p3&chs=250x100&chd=t:60,40&chl=Hello|World&chof=json'));

echo $jsonData;

?>

这应该有用。