我試圖通過cURL POST請求接收數組,並且我有一個引渡問題。迭代後在php 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應用程序中)urledecode不起作用。 utf8_decode和base64_decode都沒有。無論如何,至少它們不在foreach循環中工作。他們爲什麼不工作?打敗我。我仍然卡住。
============================================== ====================================
編輯2:我取得了一些進展問題的隔離,在這裏問了另一個問題。對不起,不妨關閉。
PHP (CI) cURL passed multidimensional array does not behave as one (Can't loop it)
首先,感謝您花時間回覆。我提醒你,這是一個API,我從另一個應用程序調用,並且我只能var_dump $ data = callApi(array('keys'=> $ keys));在原來的應用程序(調用api()的那個。這就是爲什麼我只能有一個回聲json_encode(),這就是我回頭看看 – tasugo
嗯,我不能告訴你更多...你確定你的foreach循環一個真正的數組var?你仍然可以var_dump你嘗試foreach的變量嗎?即使有問題,只要你真的進入你的foreach循環,就不應該有「null」。在json_encode之後你試着print_r sizeof your $ myArray? –
我編輯了我的問答 – tasugo