Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.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解码字符串_Php_Arrays_Json_Decoding_String Decoding - Fatal编程技术网

PHP(数组数组)特殊字符中的JSON解码字符串

PHP(数组数组)特殊字符中的JSON解码字符串,php,arrays,json,decoding,string-decoding,Php,Arrays,Json,Decoding,String Decoding,因此,我在将JSON字符串转换为PHP数组时遇到了这个问题。数据是通过HTTP POST发送的,所以我知道可能需要一些解码 有人能告诉我如何在PHP中使用json_decode()将这个字符串转换成数组吗? “[[\'37\”、“text\”、“\\\\”、[\'38\”、“\'text\”、“\\\”、[\'39\”、“\'text\”、“\'text\”、“\'\\\\”一个词两个词。你好?\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

因此,我在将JSON字符串转换为PHP数组时遇到了这个问题。数据是通过HTTP POST发送的,所以我知道可能需要一些解码

有人能告诉我如何在PHP中使用json_decode()将这个字符串转换成数组吗?
“[[\'37\”、“text\”、“\\\\”、[\'38\”、“\'text\”、“\\\”、[\'39\”、“\'text\”、“\'text\”、“\'\\\\”一个词两个词。你好?\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

投入是:

[
    ["37", "text", ""],
    ["38", "text", ""],
    ["39", "text", userInputtedString]
]
其中
userinputedstring
是:
一个词两个词。你好“退出”lol


^或者任何其他Unicode值出现了什么问题

只需像您提到的那样使用json_解码

$ans = json_decode($_POST["name-of-var"]);

这样就可以了。

什么问题

只需像您提到的那样使用json_解码

$ans = json_decode($_POST["name-of-var"]);

这应该可以做到。

您也可以使用uft8_编码(发送到HTML)和uft8_解码(接收),但不是正确的方式

您也可以使用uft8_编码(发送到HTML)和uft8_解码(接收),但不是正确的方式

在json_解码之前使用utf8_编码

$str = "[[\"37\",\"text\",\"\\\"\\\"\"],[\"38\",\"text\",\"\\\"\\\"\"],[\"39\",\"text\",\"\\\"one word two words. Hello? \\\\\\\"escape\\\\\\\" lol\\\"\"]]";
$str = utf8_encode($str);
$str = json_decode($str,JSON_UNESCAPED_SLASHES);

在json解码之前使用utf8编码

$str = "[[\"37\",\"text\",\"\\\"\\\"\"],[\"38\",\"text\",\"\\\"\\\"\"],[\"39\",\"text\",\"\\\"one word two words. Hello? \\\\\\\"escape\\\\\\\" lol\\\"\"]]";
$str = utf8_encode($str);
$str = json_decode($str,JSON_UNESCAPED_SLASHES);

这就是你在请求中得到的吗?如果是这样的话,那么这篇文章中的某个地方似乎有点不对劲。或者你在某个地方有一个addslashes,或者可能打开了magic quotes,或者两者兼而有之。etc@JonStirling是的,它只是作为一个AJAX参数来自Javascript。只需在javascript中的数组上使用标准的
JSON.stringify()
。真奇怪…这就是你在请求中得到的吗?如果是这样的话,那么这篇文章中的某个地方似乎有点不对劲。或者你在某个地方有一个addslashes,或者可能打开了magic quotes,或者两者兼而有之。etc@JonStirling是的,它只是作为一个AJAX参数来自Javascript。只需在javascript中的数组上使用标准的
JSON.stringify()
。太奇怪了…它只返回空值。对不起,我应该更具体一点啊,有趣的是,我的帖子输入看起来没有经过消毒。非常感谢。它只返回NULL。对不起,我应该更具体一点啊,有趣的是,我的帖子输入看起来没有经过消毒。非常感谢。这就解决了,谢谢。我必须在Javascript中执行utf8编码,然后才能通过POST传递输入。这解决了这个问题,谢谢。在通过POST传递输入之前,我必须在Javascript中执行utf8编码