我在我的智慧結束了,我不能弄明白。 我的代碼在本地正常工作(使用xamp),但現在不起作用。
當我運行這段代碼:
echo "passed in parameter" . $_POST["jsoned"];
$unjasoned = json_decode("[\"23\",[],[[\"[email protected]\",\"2011-01-08\"]]]");
die("\ntype\n\t". gettype($unjasoned) . "\n\n\nAmount\n\t" . $unjasoned[0]);
我得到:
passed in parameter[\"23\",[],[[\"[email protected]\",\"2011-01-08\"]]]
type
array
Amount
23
這是正是我想要什麼
然而,當我使用的傳遞變量的問題發生$_POST["jsoned"]
這是你在上面的結果中看到的顯然是完全相同的即時通訊在這裏手動插入。
所以,如果我這樣做,而不是(完全相同的輸入):
echo "passed in parameter" . $_POST["jsoned"];
$unjasoned = json_decode($_POST["jsoned"]);
die("\ntype\n\t". gettype($unjasoned) . "\n\n\nAmount\n\t" . $unjasoned[0]);
我得到:
passed in parameter[\"23\",[],[[\"[email protected]\",\"2011-01-08\"]]]
type
NULL
Amount
所以......這到底是發生?如果您有任何提示與我分享,請永遠感謝您。
ps。我的服務器上運行PHP版本5.2.13
養活你的$ _ POST [「jsoned」]以stripslashes()函數首先 – 2011-01-08 11:10:43
如果您嘗試使用設簡單引號'在你的字符串測試在第一實例版本你也許會有所不同,不是嗎?做一個print_r($ _ POST [「jsoned」]),這樣我們就可以看到真正的調試內容。 – regilero 2011-01-08 11:14:07
我發誓我不是懶惰的,我實際上搜索了大約一個小時,然後放棄了。 – vvMINOvv 2011-01-08 11:24:59