如何从字符串中删除换行符(没有字符!)?如何从字符串中删除换行符(没有字符!)?(How to re

2019-05-14 13:45发布

这看起来似乎是一个傻瓜,但请放心,这不是 - 我已搜查两个SO以及网络的其余部分的答案,我的问题,结束了一遍又一遍找到相同的不足“解决方案”。 总之,这里有云:

我节省从一个文本到MySQL数据库用户输入(WordPress的环境中,但应该没有问题这个问题,我相信)。 它以后从DB中检索到显示给管理员的网站的后端。 当用户提交带有换行符文本时出现的问题(即按Enter键)。

样本串的可能是这样的:

Dear friends, I just wanted so Hello. How are you guys? I'm fine, thanks!

Greetings,
Bill

没有的字符串中的字符线(“\ n”,“\ r”,或类似的)端。

我使用nl2br()在它生成的HTML输出,但是这还不够。 那么结果是:

Dear friends, I just wanted so Hello. How are you guys? I'm fine, thanks!<br />
<br />
Greetings,<br />
Bill

其中,据我了解,是预期的nl2br()的结果,作为插入标签和不应该取代换行符摆在首位?

不过,我需要的格式是这样的:

Dear friends, I just wanted so Hello. How are you guys? I'm fine, thanks!<br /><br />Greetings,<br />Bill

如果字符串中它有EOL字符,如“\ n”,我会跟要么打str_replace()preg_replace()并用它做的,但我不知道是什么针养活这些功能无论是否有是不是摆在首位没有字符存在。

我可以手动访问DB中的相关领域,打退格为每断行什么,我后来想用串工作要做。 所以我知道我需要的上述格式。

Answer 1:

你应该能够用预浸去掉所有换行符和回车来代替它。 该代码是:

preg_replace( "/\r|\n/", "", $yourString );

即使\n个字符没有出现,如果你正在回车还有一个看不见的字符存在。 预浸更换应该抓住和解决这些。



Answer 2:

Ben的解决方案是可以接受的,但str_replace()函数远远大于更快的preg_replace()

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

使用较少的CPU功率,降低了世界的二氧化碳排放量。



Answer 3:

$str = "
Dear friends, I just wanted so Hello. How are you guys? I'm fine, thanks!<br />
<br />
Greetings,<br />
Bill";

echo str_replace(array("\n", "\r"), '', $str);  // echo $str in a single line


Answer 4:

这是因为nl2br()不排除新的生产线都没有。

返回字符串<br /><br>所有换行符( 前插入 \r\n\n\r\n\r )。

使用str_replace来代替:

$string = str_replace(array("\r\n", "\r", "\n"), "<br />", $string);


Answer 5:

你也可以使用PHP修剪

该函数返回空白从一开始就和STR的端部剥离的字符串。 没有第二参数,修剪()将去除这些字符:

  • “”(ASCII 32(0×20)),一个普通的空间。
  • “\ t” 的(ASCII 9(0×09)),一个标签。
  • “\ n” 个(ASCII 10(的0x0A)),新线(换行)。
  • 为 “\ r”(ASCII 13符(0x0D)),一个回车。
  • “\ 0”(ASCII 0(0×00))时,NUL字节。
  • “\ X0B”(ASCII 11(0x0B中)),一个垂直制表符。


Answer 6:

要正常工作,同时在Windows上,我建议使用

$buffer = str_replace(array("\r\n", "\r", "\n"), "", $buffer);

"\r\n" -适用于Windows, "\r" -适用于Mac和"\n" -为Linux



Answer 7:

str_replace函数(PHP_EOL,空,$海峡);



Answer 8:

一些更实用(易于在任何地方使用):

function strip_carriage_returns($string)
{
    return str_replace(array("\n\r", "\n", "\r"), '', $string);
}

使用PHP_EOL作为搜索替换参数也是一个不错的主意! 荣誉。



Answer 9:

既然你用WP工作,为什么不利用WordPress的wpautop()函数,这里记载: https://codex.wordpress.org/Function_Reference/wpautop

尝试:

wpautop( $string );


文章来源: How to remove line breaks (no characters!) from the string?