用textarea接受换行符以及多换行符的处理

解决Textarea换行问题
本文介绍了一种解决Textarea处理换行符导致显示异常的方法,并针对不同编辑器的换行符提出了相应的解决方案。
部署运行你感兴趣的模型镜像


首先说明下问题的缘由:

就是我们一般做留言板的时候是用textarea做接收的,那么textarea默认是不接收换行符号的,所以就产生了这个问题。那要让textarea接收换行可以直接用nl2br()这个函数类解决。但是这样就又产生了一个问题,那就是我如果我输入如下的形式:


那我们接收之后出现的问题就是其实用户只输入了几个没用的字符,但是里面又包含很多的换行,那在浏览器解析完这个内容之后如果换行符号很多,那就会出现有一条内容很长可能占据你整个网页的高度,使得别人看的时候会出现很长的滚动条,那这种体验是不好的,所以我们需要即可以让textarea接收换行但是又不会出现上述的问题,那怎么办呢?就用如下代码解决吧:

$str = preg_replace('/(<br \/>)/', '\n', nl2br($_POST['content']));
$str = preg_replace('/(\\\n\s[^.]){1,}/', '<br />', $str);

而且上面这两行代码是必须的,否则你就会出现我说的那个问题。


另外就是对于编辑器中也同样有这个问题,比如一个优快云的论坛,别人回复帖子的时候就可以在开始位置写几个字符,然后结尾也是几个字符,然后在中间按住回车键不动,你可以按几分钟之后再松开,然后你点击回复,那你看看你回复之后这个页面变成了什么样,那编辑器的这种可接收换行但又不想出现我说的那种问题的方法的解决办法是很简单的,因为不同的编辑器对于换行的表示是不同的,像我用ueditor测试的时候它的换行表示是:“<p><br /><\/p>”

那你要处理这种很多的换行的话,仅仅需要一个正则替换就可以了,因为从编辑器获取来的数据都是一个长字符串在代码处理上看是输入一行,所以不需要事先加换行符,这就是为什么上面的代码中必须做第一次替换的原因。

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值