一尘不染

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

php

这似乎是骗人的,但请放心,事实并非如此-我在SO和网络的其余部分中搜索了我的问题的答案,最终一遍又一遍地找到了同样不足的“解决方案”。无论如何,这是这样的:

我正在将用户输入从文本区域保存到MySQL数据库(在WordPress环境中,但是我认为这与该问题无关紧要)。稍后从数据库中检索它,以在站点的后端显示给Admins。当用户提交带有换行符的文本时(即按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键,以后我要对字符串进行处理。所以我知道我需要以上格式。


阅读 282

收藏
2020-05-26

共1个答案

一尘不染

您应该能够用一个能去除所有换行符和回车符的预浸料代替它。代码是:

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

即使\n没有出现这些字符,如果要返回回车,那里也会有一个不可见的字符。胎片替换应抓住并修复这些。

2020-05-26