2013-06-27 39 views
2

json_encode陣列I需要以編碼類似陣列:與INT索引

Array 
(
    [0] => 393922111111 
    [1] => 393433333333 
    [2] => 393555555555 
) 

與json_encode。

我得到這個:

["393922111111","393433333333","393555555555"] 

似乎不正確。 也就是說我把它變成了一個

echo '<input type="hidden" id="destinatariSMS" name="destinatariSMS" value="'; 
    echo json_encode($destinatariSMS); 
echo '" />'.PHP_EOL; 

和在下一頁'只收到第一個括號。

你能給我一些提示嗎?謝謝!

+0

提示:使用'intval()'強制它們爲整數而不是字符串。 – Pitchinnate

+0

這些數字在32位PHP中超過32位整數限制,因此它們必須編碼爲字符串。 –

+0

或者只爲你的'value ='''使用單引號,這樣你在雙引號內就沒有雙引號。 – Pitchinnate

回答

2

你做錯誤是因爲在正確輸入INPUT值之前,沒有正確轉義你的編碼json。某些字符(包括")需要引用(" =>&quot;)以使用HTML「工作」。所以有效的代碼應該是:

echo '<input type="hidden" id="destinatariSMS" name="destinatariSMS" value="'; 
echo htmlspecialchars(json_encode($destinatariSMS)); 
echo '" />'.PHP_EOL; 
+0

謝謝。幾個小時之後...我犯了這個了不起的錯誤。謝謝! – sineverba

0

當輸出到HTML,你應該使用htmlspecialchars到您的輸出編碼,使其不能打破HTML:

echo '<input type="hidden" id="destinatariSMS" name="destinatariSMS" value="'; 
    echo htmlspecialchars(json_encode($destinatariSMS)); 
echo '" />'.PHP_EOL; 

在你的情況在你的JSON引號關閉value屬性。