11

因此,当我运行 json_encode 时,它​​也会从 MySQL 中获取 \r\n。我试过重写数据库中的字符串无济于事。我尝试将 MySQL 中的编码从默认的 latin1_swedish_ci 更改为 ascii_bin 和 utf8_bin。我已经做了很多 str_replace 和 chr(10)、chr(13) 的东西。我不知道还能说什么或做什么,所以我将把它留在这里......

$json = json_encode($new);
if(isset($_GET['pretty'])) {
echo str_replace("\/", "/", jsonReadable(parse($json)));
} else {
$json = str_replace("\/", "/", $json);
echo parse($json);
}

jsonReadable 函数来自这里,解析函数来自这里。已经存在的 str_replaces 是因为我得到了像 </h1> 这样的奇怪格式的 html 标签。最后,$new 是一个在上面制作的数组。应要求提供完整代码。

帮助我 StackOverflow。你是我唯一的希望

4

3 回答 3

10

字符串是否包含“\r\n”(如 0x0D 0x0A)或文字字符串 '\r\n'?如果是前者,这应该删除任何换行符。

$json = preg_replace("!\r?\n!", "", $json);

或者,如果您想用 br 标记替换换行符,请将第二个参数“”替换为“<br />”。对于后一种情况,请尝试以下操作:

$json = preg_replace('!\\r?\\n!', "", $json);
于 2010-11-19T23:58:18.717 回答
7

不要在 JSON 中替换它,在编码之前在源代码中替换它。

于 2010-11-19T23:52:25.550 回答
2

我有一个类似的问题,我用过:

$p_num = trim($this->recp);
$p_num = str_replace("\n", "", $p_num);
$p_num = str_replace("\r", ",", $p_num);
$p_num = str_replace("\n",',', $p_num);
$p_num = rtrim($p_num, "\x00..\x1F");

不确定这是否有助于满足您的要求。

于 2010-11-19T23:36:52.493 回答