gpt4 book ai didi

php json_encode 不转义新行

转载 作者:可可西里 更新时间:2023-10-31 22:44:40 26 4
gpt4 key购买 nike

我在使用 json_encode 时遇到了一些问题。

当我对一个包含新行的数组进行 json_encode 时,它​​不会转义新行,而是删除\并保留 n。

ex: $array = array('name'=> "some text \n\r text");
$results = json_encode($array);

它正在数据库中保存一些文本和文本

我正在使用 php 5.3.8

编辑:

这是我正在使用的原始代码

$attr = array();
for($i=0; $i < count($_POST['key']); $i++){
$attr[$_POST['key'][$i]] = $_POST['value'][$i];
}
echo json_encode(array('custom' => $attr));

这些 POST 值来自表单。

最佳答案

Newlines are not valid characters inside of JSON strings 。这是预期的行为:

char

any Unicode character except " or \ or control-character

  • \"
  • \
  • /
  • \b
  • \f
  • \n
  • \r
  • \t
  • \u four-hex-digits

JSON 将这些控制字符转义为列表中的字符。

所以现在我们有了 '\n'(字面意思是反斜杠后跟 'n'),如果没有正确转义,它将作为 n 保存在数据库中>。 就是您遇到的问题。

解决方案

使用准备好的语句正确转义存储在数据库中的字符串中的所有斜杠。这会将它们保存为 '\n',您可以在检索数据时将其转换为 "\n"

关于php json_encode 不转义新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11264631/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com