【发布时间】:2014-02-07 10:49:50
【问题描述】:
我正在尝试通过 cURL POST 请求接收数组,但遇到了一个额外的问题。
长话短说:这是我们所处的一个 api 控制器,当我 json_encode 响应时...
echo json_encode($_POST['keys']); return;
结果(在api通信的调用端):
array(361) {
[0]=>
string(26) "some+urlencoded+string"
[1]=>
string(14) "and+some+other"
...
}
等等。所以api接收我的参数数组没问题。
然后在 api 中,我尝试使用 foreach 循环对每个字符串进行 urldecode,以将这些值保存在其他数组中:
$myArray = array();
foreach ($_POST['keys'] as $key => $value)
{
$myArray[$key] = urldecode($value);
// Or $myArray[] = urldecode($value); -- same result
}
echo json_encode($myArray); return;
结果如下:
NULL
我做错了什么?
提前致谢:)
================================================ ====================================
编辑:问题似乎是,在 api 控制器(位于 yii 应用程序中)中,urldecode 不起作用。 utf8_decode 和 base64_decode 都没有。无论如何,至少它们不能在 foreach 循环中工作。为什么他们不工作?打败我。我还是卡住了。
================================================ ====================================
编辑 2:我在隔离问题方面取得了一些进展,在 SO 上问了另一个 Q。对不起,还不如关了。
PHP (CI) cURL passed multidimensional array does not behave as one (Can't loop it)
【问题讨论】: