Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.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向站点发送数据以获取Json_Php_Jquery_Json - Fatal编程技术网

通过php向站点发送数据以获取Json

通过php向站点发送数据以获取Json,php,jquery,json,Php,Jquery,Json,我遇到了一个问题,问题是我用jquery读取json文件,它工作得很好,但现在我必须让它用php读取,但问题是我使用了一些数据来获取json的以下部分: dataString = "id=" + id + "&todos=" + false; $.ajax({ type: "POST", url: "http://www.url.com/example", data: dataString, dataType: "json", success: function( data, text

我遇到了一个问题,问题是我用jquery读取json文件,它工作得很好,但现在我必须让它用php读取,但问题是我使用了一些数据来获取json的以下部分:

dataString = "id=" + id + "&todos=" + false;
$.ajax({
type: "POST",
url: "http://www.url.com/example",
data: dataString,
dataType: "json",

success: function( data, textStatus, jqXHR) {
这样我就没有问题了,因为我把数据发送到网站上,这样它就可以给我想要的信息,但是我不知道如何在php中实现它,我正在尝试

$str = file_get_contents('http://www.url.com/example.json');
$json = json_decode($str, true); 
var_dump($str);
但当然,由于我没有发送数据,网站不会返回任何信息


我希望有办法。谢谢

如果第一个不存在且无法启用(非常罕见的情况),则应使用
curl
fsockopen

下面是如何使用
curl

<?php
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, array(
    'id' => $id,
    'todos' => false
));
$json = json_decode( curl_exec($ch) );

乔纳森·库恩是对的

下面是一个使用stream\u context\u create的示例:

<?php

$str = file_get_contents('http://www.url.com/example', false, stream_context_create(
                        array('http' => 
                            array('method' => 'POST',
                                'header' => 'Content-type: application/x-www-form-urlencoded',
                                'content' => 'id=idVal&todos=false'))));
?>


由于您将数据与ajax请求一起发布,因此需要使用来构建一个上下文,以更改发布和发送数据的方法。也就是说,如果您想使用file\u get\u内容。或者你可以使用curl,但最终会得到相同的结果。我不建议使用这种方法,因为在服务器上禁用
allow\u url\u fopen
被认为是一种良好的安全实践。然而,这教会了我如何创建
流\u上下文
,因此谢谢你:P