您尝试过的所有变体的主要问题在于,这两个
n和
r都是转义字符, 只有在双引号字符串中使用它们时才会转义 。
在PHP中,
'rn'和之间有很大的区别
"rn"。注意第一个中的单引号,第二个中的双引号。
因此:
'rn'将产生一个包含斜杠,“ r”,另一个斜杠和“ n”的四个字符串,而
"rn"将包含两个字符,即换行符和回车符。
因此,对问题的直接答案是,您需要使用问题中给出的第二个示例,但要用双引号而不是单引号:
$text = str_replace("rn",'', $text);
值得指出的是,这将从输入中删除 所有
新行,并将其替换为空。如果输入中有多个新行,则将其全部删除。在不了解您的应用程序的情况下,我不知道这是否是您想要的,但是这里有一些想法:
如果只想从输入字符串的 末尾 删除空白行(和其他空格),则可以使用该
trim()
函数。如果要保留输出到HTML的格式,则此
nl2br()
功能将为您提供帮助。如果要输出为不带格式的HTML,则可能不需要删除它们,因为浏览器不会渲染 n字符的换行符。按照示例,如果您什么都没有替换新行,则第一行的最后一个单词将直接进入第二行的第一个单词,依此类推。您可能更喜欢用空格字符而不是什么代替它们。
用户可能只提交
n
没有匹配项的输入,r
反之亦然(这可能是由于其OS或浏览器,故意的黑客入侵或其他多种原因)。如果要替换这两个字符的 所有 实例,一种更可靠的方法是单独替换它们,而不是依靠它们彼此相邻。str_replace()
允许您通过在数组中指定它们来执行此 *** 作。您也可以使用strtr()
或preg_replace()
实现相同的目标。
希望能有所帮助。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)