Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.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 可以用curl中的post方法返回数据吗_Php_Curl - Fatal编程技术网

Php 可以用curl中的post方法返回数据吗

Php 可以用curl中的post方法返回数据吗,php,curl,Php,Curl,我正在尝试用php学习curl。我知道可以使用curl通过post方法将值发送到另一个脚本。但如果我想这样做,在第一次发送后,该值在那里执行,并使用post方法再次返回。。。。那有可能吗。 下面是我的两个脚本: Index.php echo json_encode($output); $data = json_decode($output, true); print_r($data); 和test.php echo json_encode($output); $data = json_

我正在尝试用php学习curl。我知道可以使用curl通过post方法将值发送到另一个脚本。但如果我想这样做,在第一次发送后,该值在那里执行,并使用post方法再次返回。。。。那有可能吗。 下面是我的两个脚本:

Index.php

echo json_encode($output);
$data = json_decode($output, true);
print_r($data);

test.php

echo json_encode($output);
$data = json_decode($output, true);
print_r($data);


这里index.php通过post方法发送,我可以使用$u post['first']访问它。如果我想从这里test.php传输$output数组,并可以从index.php以$\u POST['choose']的形式访问它们,这是可能的吗?

来自
curl
的响应不会自动填充像
$\u POST
这样的超全局变量,因为它们是在脚本加载时设置的

您需要自己解析curl响应。我建议您以PHP易于解析的格式返回它。例如,使用

例子 分别用以下代码替换
print\r()

test.php

echo json_encode($output);
$data = json_decode($output, true);
print_r($data);
index.php

echo json_encode($output);
$data = json_decode($output, true);
print_r($data);

来自
curl
的响应不会自动填充像
$\u POST
这样的超全局变量,因为它们是在脚本加载时设置的

您需要自己解析curl响应。我建议您以PHP易于解析的格式返回它。例如,使用

例子 分别用以下代码替换
print\r()

test.php

echo json_encode($output);
$data = json_decode($output, true);
print_r($data);
index.php

echo json_encode($output);
$data = json_decode($output, true);
print_r($data);
而不是打印(输出);在test.php中创建一个函数模块,处理数据并返回:

return $output;
index.php,$output=curl\u exec($ch);如果正确,您最终可以通过以下方式访问数据:

echo $output->choose;
echo $output->choose1;
或者使用上面提到的
parse_str()
json_decode()

而不是打印($output);在test.php中创建一个函数模块,处理数据并返回:

return $output;
index.php,$output=curl\u exec($ch);如果正确,您最终可以通过以下方式访问数据:

echo $output->choose;
echo $output->choose1;


或者使用上面Jason提到的
parse_str()
json_decode()

您尝试过吗?我可能试过那样做,但没有成功。我想专家们可能会提出一些有用的建议..在$output中返回的响应字符串是什么?从index.php数组([choose]=>3[choose1]=>1[choose2]=>2)这个字符串需要一些处理。如果你想得到你可以使用的数据,那么杰森·麦克里有正确的答案。你试过了吗?我可能试过那样做,但没有成功。我想专家们可能会提出一些有用的建议..在$output中返回的响应字符串是什么?从index.php数组([choose]=>3[choose1]=>1[choose2]=>2)这个字符串需要一些处理。如果你想得到可以使用的数据,那么Jason McCreary给出了正确的答案。你能给我一个小例子吗?和前面一样的结果…我想要的是echo$_POST['choose']应该输出3。是的,但是现在
$data
实际上是一个PHP数组而不是一个字符串。使用
$data['choose']
,而不是
$\u POST
。请仔细阅读我的问题。我想让他们用post方法返回。我明白。卷曲不是那样的,我也不建议这样做。这是一个更好的方法。你能给我一个小例子吗?和前面一样的结果…我想要的是echo$\u POST['choose']应该输出3。是的,但是现在
$data
实际上是一个PHP数组而不是一个字符串。使用
$data['choose']
,而不是
$\u POST
。请仔细阅读我的问题。我想让他们用post方法返回。我明白。卷曲不是那样的,我也不建议这样做。这是一个更好的方法。你试过这个吗?你错过了一些步骤。就目前情况而言,这是行不通的。引用我的答案不是答案。你试过这个吗?你错过了一些步骤。就目前情况而言,这是行不通的。引用我的答案,不是答案。