2013-06-27 38 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属性。