php中textarea文本框输入内容回车换行(‘\n‘)的处理方法

因为textarea中换行用的是 “\n"或”\r\n",(linux下输入为’\r\n’,windows下为’\n’)

正常的HTML中的换行是或;
情况一、若将textarea的内容直接存入数据库中,换行在数据库中也会以"\n"或"\r\n"存储
这种情况的解决方法:
方法一、(运用smarty模版)
1. 在php服务端
KaTeX parse error: Can't use function '\r' in math mode at position 20: …= str_replace("\̲r̲\n","<br />",value);(或KaTeX parse error: Can't use function '\r' in math mode at position 20: …= str_replace("\̲r̲\n","<br>",value)😉
this->data['value']=this−>data[′value′]=str;
2.在模版端
{$value|replace:"<":"<"|replace:">":">"}
方法二、(运用smarty模版,这种方式在有些框架下不正确,因为这些框架会在服务端将
传过去之后,经过浏览器解析会将’<‘和’>‘解析为’<‘和’>’)
1. 在php服务端
KaTeX parse error: Can't use function '\r' in math mode at position 20: …= str_replace("\̲r̲\n","<br />",value);
str = htmlspecialchars_decode(str=htmlspecialcharsd​ecode(str);
this->data['value']=this−>data[′value′]=str;
2. 在模版端
{$value}
方法三、(没有用smarty等模版)
1. 在php服务端
KaTeX parse error: Can't use function '\r' in math mode at position 20: …= str_replace("\̲r̲\n","<br />",value);(或KaTeX parse error: Can't use function '\r' in math mode at position 20: …= str_replace("\̲r̲\n","<br>",value)😉
this->data['value']=this−>data[′value′]=str;
2. 在html端
<?php echo html_entity_decode($value,ENT_QUOTES);?> // 将特殊的 HTML 实体(包括< 以及>等)转换回普通字符(’<‘或’>'等)

情况二、 将textarea的内容入库前做处理,然后从库中取值时再做一次处理.

总结:情况一和情况二只是不同的两种步骤,思路相同

以下这些是转载别人的,可以做为参考、

解决方法如下:
一.表单处理
提交时使用javascript把 textarea 中的 \n 替换成
,这里使用了jquery.

二. 服务端处理
使用的是PHP的内置函数,做了一下入库前的处理
htmlentities(trim($postValue), ENT_QUOTES, “utf-8”);
三.读取显示页面
使用PHP的正则函数把读取的
还原,然后输出

<?php $show = eregi_replace('<br>|<br />','
',$dataStr); ?>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值