猿问

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

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

这可能看起来像是一个骗局,但请放心不是 - 我已经搜索了SO以及网络的其他部分来解决我的问题并最终找到相同的不足“解决方案”一遍又一遍。无论如何,这里是:

我正在将用户输入从textarea保存到MySQL数据库(在WordPress环境中,但我认为这不应该对这个问题很重要)。稍后从数据库中检索它以显示给站点后端的管理员。当用户使用换行符提交文本时(即按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()用它来完成它,但我不知道如果没有字符那么用什么针来提供这些函数首先。

我可以手动访问数据库中的相关字段,为每个换行符点击Backspace,以及我以后想要对字符串工作的内容。所以我知道我需要以上格式。


幕布斯7119047
浏览 1378回答 3
3回答

慕妹3146593

您应该能够用删除所有换行符和回车符的preg替换它。代码是:preg_replace(&nbsp;"/\r|\n/",&nbsp;"",&nbsp;$yourString&nbsp;);即使\n角色没有出现,如果你得到回车,那里有一个看不见的角色。preg替换应该抓住并修复它们。

慕容森

str_replace()比preg_replace()要快得多$buffer&nbsp;=&nbsp;str_replace(array("\r",&nbsp;"\n"),&nbsp;'',&nbsp;$buffer);使用较少的CPU功率,减少世界二氧化碳排放量。

梦里花落0921

$str&nbsp;=&nbsp;" Dear&nbsp;friends,&nbsp;I&nbsp;just&nbsp;wanted&nbsp;so&nbsp;Hello.&nbsp;How&nbsp;are&nbsp;you&nbsp;guys?&nbsp;I'm&nbsp;fine,&nbsp;thanks!<br&nbsp;/> <br&nbsp;/> Greetings,<br&nbsp;/> Bill";echo&nbsp;str_replace(array("\n",&nbsp;"\r"),&nbsp;'',&nbsp;$str);&nbsp;&nbsp;//&nbsp;echo&nbsp;$str&nbsp;in&nbsp;a&nbsp;single&nbsp;line
随时随地看视频慕课网APP
我要回答