0

我的数据库中有很多 '\n' 我构建了一个函数来清除来自 '\n' 的所有评论(在视图侧)。它工作正常,但仍有一些用户使用 \n 并且我的功能无法清理它。奇怪的是,如果我从数据库中复制他们的评论并将其粘贴到我的网站中,我的功能运行良好并且干净“\n”。如果我在数据库中编辑我的评论和过去的用户评论,则该功能不起作用。我不知道该怎么做,我尝试在选择查询中使用“mysql replace”,但也没有用。另一个奇怪的事情是,当我在 phpMyAdmin 中使用 select replace 时,它​​可以工作。请帮我..

我的功能:

function cleanComments($text){

    return stripslashes(str_replace("\\n", ". ",htmlspecialchars($text)));
} 

我的 sql 查询:

SELECT REPLACE(comment_text, '\\n', '.'),date...

任何人都知道评论中的 \n (字符串)如何干净而不在数据库中更改它们?

4

2 回答 2

2

你必须使用\n,而不是\\n

function cleanComments($text){

    return stripslashes(str_replace("\n", ". ",htmlspecialchars($text)));
}

这是因为表示"\n"新行和字符串; 例子 :"\\n""\n"

echo "\n";

结果:新行

echo "\\n";

结果:\n

于 2013-08-18T13:07:33.357 回答
1

在 Windows 上,换行符是\r\n. 由于您的大多数用户可能都在 Windows 上,这可以解释为什么仅删除\n是不够的。

现在,这些是您要删除的实际换行符,还是字面上的“反斜杠-n”?如果它是一个实际的换行符,那么您应该执行以下操作:

str_replace(["\n","\r"],"",$text);

如果它是文字,则将这些反斜杠加倍。

于 2013-08-18T13:07:39.530 回答