php中textarea文本框输入内容回车换行的处理方法php
php中textarea文本框输入内容回车换行的处理方法...
因为textarea中换行用的是 "\n"或"\r\n",(linux下输入为'\r\n',windows下为'\n') 正常的HTML中的换行是<br />或<br>;
情况一、若将textarea的内容直接存入数据库中,换行在数据库中也会以"\n"或"\r\n"存储
方法一:运用smarty模版
1. 在php服务端
$str = str_replace("\r\n","<br />",$value);(或$str = str_replace("\r\n","<br>",$value);) $this->data['value']=$str;
2.在模版端
{$value|replace:"<":"<"|replace:">":">"}
方法二:运用smarty模版,这种方式在有些框架下不正确,因为这些框架会在服务端将<br>传过去之后,经过浏览器解析会将'<'和'>'解析为'<'和'>'
1. 在php服务端
$str = str_replace("\r\n","<br />",$value); $str = htmlspecialchars_decode($str); $this->data['value']=$str;
2. 在模版端
{$value}
方法三:没有用smarty等模版
1. 在php服务端
$str = str_replace("\r\n","<br />",$value);(或$str = str_replace("\r\n","<br>",$value);) $this->data['value']=$str;
2. 在html端
<?php echo html_entity_decode($value,ENT_QUOTES);?> // 将特殊的 HTML 实体(包括< 以及>等)转换回普通字符('<'或'>'等)
情况二、 将textarea的内容入库前做处理,然后从库中取值时再做一次处理.
一.表单处理
提交时使用javascript把 textarea 中的 \n 替换成<br>,这里使用了jquery.
<textarea name="test" rows="3" cols="20" id="test"></textarea> <script type="text/javascript"> $("#form").submit(function(){ var descrip = $("#test").val(); descrip=descrip.replace(/\n/g,'<br />'); $("#test").val(descrip); } </script>
二. 服务端处理
使用的是PHP的内置函数,做了一下入库前的处理
htmlentities(trim($postValue), ENT_QUOTES, "utf-8");
三.读取显示页面
使用PHP的正则函数把读取的<br>还原,然后输出
<?php $show = eregi_replace('<br>|<br />','<br>',$dataStr); ?>
下一篇:php怎么判断只能是数字和字母
最新评论
热门推荐
我要评论