如何从string中删除换行符(没有字符!)?
这似乎是一个愚蠢的,但放心,这不是 – 我已经search了所有以及networking的其余部分,为我的问题的答案,并最终find同样不足的“解决scheme”一遍又一遍。 无论如何,这里是:
我将用户input从textarea保存到MySQL数据库(在WordPress环境中,但我相信对这个问题应该不重要)。 它稍后从数据库中检索到显示给站点后端的pipe理员。 当用户用换行符提交文本时(即按Enter键),就会出现问题。
示例string可能如下所示:
Dear friends, I just wanted so Hello. How are you guys? I'm fine, thanks! Greetings, Bill string中没有行尾字符(“\ 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()结果,因为插入了标签,不应该首先replace换行符? 
但是我需要的格式是这样的:
 Dear friends, I just wanted so Hello. How are you guys? I'm fine, thanks!<br /><br />Greetings,<br />Bill 
 如果string中有EOL字符,例如“\ n”,我会用str_replace()或者preg_replace()来处理它,但是如果有的话,首先不是没有字符。 
我可以手动访问数据库中的相关字段,为每个换行符点击Backspace,以及之后我想要处理的string。 所以我知道我需要上述格式。
你应该能够用一个preg来replace它,它将删除所有换行符和回车符。 代码是:
 preg_replace( "/\r|\n/", "", $yourString ); 
 即使认为\n字符没有出现,如果你得到回车,那里有一个无形的字符。  pregreplace应该抓住并修复这些。 
Ben的解决scheme是可以接受的,但是str_replace()比preg_replace()要快得多
 $buffer = str_replace(array("\r", "\n"), '', $buffer); 
使用更less的CPU功率,减less世界二氧化碳排放量。
 $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 
 这是因为nl2br()根本不会删除新行。 
在所有换行符(
\r\n,\n\r,\n和\r) 之前插入带有<br />或<br>string。
 改用str_replace : 
 $string = str_replace(array("\r\n", "\r", "\n"), "<br />", $string); 
要在Windows上正常工作,我build议使用
 $buffer = str_replace(array("\r\n", "\r", "\n"), "", $buffer); 
  "\r\n" – 对于Windows, "\r" – 对于Mac和"\n" – 对于Linux 
str_replace(PHP_EOL,null,$ str);
东西多一点function(易于使用的任何地方):
 function strip_carriage_returns($string) { return str_replace(array("\n\r", "\n", "\r"), '', $string); } 
使用PHP_EOL作为searchreplace参数也是一个好主意! 荣誉。
您也可以使用PHP修剪
这个函数返回一个从str的开始和结束中删除空格的string。 没有第二个参数,trim()会去掉这些字符:
- “”(ASCII 32(0x20)),一个普通的空间。
- “\ t”(ASCII 9(0x09)),一个选项卡。
- “\ n”(ASCII 10(0x0A)),换行(换行)。
- “\ r”(ASCII 13(0x0D)),回车。
- “\ 0”(ASCII 0(0x00)),NUL字节。
- “\ x0B”(ASCII 11(0x0B)),一个垂直标签。
既然你正在使用WP,为什么不利用Wordpress的wpautop()函数,这里logging: https ://codex.wordpress.org/Function_Reference/wpautop
尝试:
 wpautop( $string );