Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中从HTTP Get接收JSON对象_Php_Json_Http - Fatal编程技术网

在PHP中从HTTP Get接收JSON对象

在PHP中从HTTP Get接收JSON对象,php,json,http,Php,Json,Http,我试图实现一个php客户端,它向服务器发送一个HTTPGET,服务器将返回一个JSON对象和返回信息。我知道一旦我的php脚本收到JSON,如何解码它,但我如何才能真正得到它呢 编辑:注意——我向服务器发送一个HTTPGET,它生成并发回一个JSON文件。它不是服务器上的文件。签出 根据服务器的响应,浏览器的行为会有所不同。无论您向服务器发出何种类型的请求(GET、POST等),但要将JSON作为响应返回,您必须在向其发出请求的脚本中设置标头: header('Content-Type: ap

我试图实现一个php客户端,它向服务器发送一个HTTPGET,服务器将返回一个JSON对象和返回信息。我知道一旦我的php脚本收到JSON,如何解码它,但我如何才能真正得到它呢


编辑:注意——我向服务器发送一个HTTPGET,它生成并发回一个JSON文件。它不是服务器上的文件。

签出


根据服务器的响应,浏览器的行为会有所不同。无论您向服务器发出何种类型的请求(GET、POST等),但要将JSON作为响应返回,您必须在向其发出请求的脚本中设置标头:

header('Content-Type: application/json;charset=utf-8;');
然后回显JSON字符串,例如:

//...populating your result data array here...//
// Print out the JSON formatted data
echo json_encode($myData);
然后,用户代理将获取JSON字符串。如果AJAX发出了请求,那么您可以简单地将该结果解析为您可以处理的JavaScript对象,如下所示:

//...AJAX request here...//
// Parse result to JavaScript object
var myData=JSON.parse(XMLHttp.responseText);

标题本身并不是必要的,但它是一种很好的实践。JSON.parse()可以解析响应。

可能相关:
$JSON=JSON\u decode(file\u get\u contents()http://server.com/json.php"));这不起作用。我必须向服务器发送一个HTTPGET,它生成并返回一个JSON文件。这不仅仅是一个我可以访问的文件。因此,当我尝试执行此操作时,会出现一个错误,显示“未能打开流”。必须为
file\u get\u contents()
适当配置PHP,以便通过HTTP和其他协议进行检索,但如果是,我建议使用它。但听起来你的情况可能不是这样。你能提供一些关于你的PHP配置的信息吗?如果您有cURL,这是另一种可能性,正如前面的评论员所提到的。您必须使用cURL或file_get_内容(这两种内容都需要在php.ini文件上启用)使其工作,那么$json变量就可以了。@devinfalgust:这将向服务器发送HTTP get请求。抱歉。我运行它的服务器没有配置PHP来运行文件\u get\u contents()。我修好了,它成功了。
//...AJAX request here...//
// Parse result to JavaScript object
var myData=JSON.parse(XMLHttp.responseText);