Php json_使用int索引编码数组
我需要对一个类似的数组进行编码:Php json_使用int索引编码数组,php,arrays,json,Php,Arrays,Json,我需要对一个类似的数组进行编码: Array ( [0] => 393922111111 [1] => 393433333333 [2] => 393555555555 ) 使用json_编码 我明白了: ["393922111111","393433333333","393555555555"] 这似乎不正确。 也就是说,我把它放进一个 echo '<input type="hidden" id="destinatariSMS" name=
Array
(
[0] => 393922111111
[1] => 393433333333
[2] => 393555555555
)
使用json_编码
我明白了:
["393922111111","393433333333","393555555555"]
这似乎不正确。
也就是说,我把它放进一个
echo '<input type="hidden" id="destinatariSMS" name="destinatariSMS" value="';
echo json_encode($destinatariSMS);
echo '" />'.PHP_EOL;
echo'.PHP\u EOL;
在下一页中,我们将只收到第一个括号
你能给我一些提示吗?谢谢大家! 输出为html时,应使用对输出进行编码,以使其不会破坏html:
echo '<input type="hidden" id="destinatariSMS" name="destinatariSMS" value="';
echo htmlspecialchars(json_encode($destinatariSMS));
echo '" />'.PHP_EOL;
echo'.PHP\u EOL;
在您的情况下,json中的引号关闭了
值属性。在将is作为输入值之前,您没有正确转义编码的json,这是一个基本错误。一些字符,包括“
”
“
=>”
)需要被引用才能“使用”HTML。因此,有效的代码应该是:
echo '<input type="hidden" id="destinatariSMS" name="destinatariSMS" value="';
echo htmlspecialchars(json_encode($destinatariSMS));
echo '" />'.PHP_EOL;
echo'.PHP\u EOL;
提示:使用intval()
将它们强制为整数而不是字符串。这些数字超过了32位PHP中的32位整数限制,因此它们必须编码为字符串。或者只需对值=''
使用单引号,这样就不会在双引号中包含双引号。然后尝试查看正在生成的HTML;JSON包含引号,并且我们使用引号来定义标记中的属性。您可能希望以某种方式转义HTML…在64位系统和PHP 5.3.3上,您可以使用JSON\u NUMERIC\u CHECK
标志来获取实际整数。正确的转义答案正是您想要的。谢谢。几个小时后……我犯了这个可怕的错误。谢谢!