Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php json_使用int索引编码数组_Php_Arrays_Json - Fatal编程技术网

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
标志来获取实际整数。正确的转义答案正是您想要的。谢谢。几个小时后……我犯了这个可怕的错误。谢谢!