我在使用 json_encode 时遇到了一些问题。
当我对一个包含新行的数组进行 json_encode 时,它不会转义新行,而是删除 \ 并保留 n。
ex: $array = array('name'=> "some text \n\r text");
$results = json_encode($array);
它正在数据库中保存 some text nr text
。
我正在使用 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
从表单中获取的值。
原文由 sankar.suda 发布,翻译遵循 CC BY-SA 4.0 许可协议
我想通了这个问题。它不在 json_encode 问题中。保存到数据库时出错。
问题是在服务器中启用了 magic_quotes_gpc 。在我的应用程序中,如果启用了 magic_quotes,我将去除斜杠。
我禁用 了 magic_quotes_gpc 。现在工作正常。
感谢每一个人。