gpt4 book ai didi

php - 用 PHP 替换\r\n

转载 作者:IT老高 更新时间:2023-10-28 23:41:57 26 4
gpt4 key购买 nike

我有一个帖子表单,它将我的文本插入到 MySQL 数据库中。

我用

$post_text = mysql_real_escape_string(htmlspecialchars($_POST['text']));

想要替换自动添加的\r\n

我试过了

$text = str_replace('\\r\\n','', $text);
$text = str_replace('\r\n','', $text);
$text = str_replace('\\R\\N','', $text);
$text = str_replace('\R\N','', $text);
$text = str_replace('/\r\\n','', $text);
$text = str_replace('/r/n','', $text);
$text = str_replace('/\R\\N','', $text);
$text = str_replace('/R/N','', $text);

\r\n 始终包含在我的数据库条目中。

我该如何解决这个问题?

最佳答案

您尝试过的所有变体的主要问题是 \n\r 都是转义字符,只有在您在双引号字符串中使用它们

在 PHP 中,'\r\n'"\r\n" 有很大的区别。注意第一个单引号,第二个双引号。

所以:'\r\n' 将产生一个包含一个斜杠、一个'r'、另一个斜杠和一个'n'的四个字符的字符串,而 "\r\n" 将包含两个字符,即换行符和回车符。

所以对你的问题的直接回答是你需要使用你在问题中给出的第二个例子,但是用双引号而不是单引号:

$text = str_replace("\r\n",'', $text);

值得指出的是,这将从输入中删除 all 新行,并将它们替换为空。如果输入中有多个新行,它们将全部被删除。在不了解您的应用程序的情况下,我不知道这是否是您想要的,但这里有一些想法:

  • 如果您只想从输入字符串的 end 中删除空行(和其他空格),您可以使用 trim() 函数

  • 如果您想保留输出到 HTML 的格式,那么 nl2br() 函数将帮助您。如果你想在没有格式化的情况下输出到 HTML,那么你可能不需要删除它们,因为浏览器不会从\n 字符呈现换行符。

  • 如果您用任何内容替换新行,根据您的示例,第一行的最后一个单词现在将直接运行到第二行的第一个单词,依此类推。您可能更愿意用空格字符代替它们。

  • 用户可能只使用 \n 而没有匹配的 \r 提交输入,反之亦然(这可能是由于他们的操作系统或浏览器,或蓄意的黑客攻击,或许多其他原因)。如果您想替换这两个字符的 all 实例,更可靠的方法是单独替换它们,而不是依赖它们彼此相邻。 str_replace() 允许您通过在数组中指定它们来做到这一点。你也可以使用 strtr()preg_replace() 来达到同样的目的。

希望对您有所帮助。

关于php - 用 PHP 替换\r\n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5449580/

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