php中textarea文本框输入内容回车换行('\n')的处理方法
2017-07-14 10:20
1126 查看
因为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);
?>
情况一、若将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中textarea文本框输入内容回车换行('\n')的处理方法
- php获取textarea的值作为邮箱内容发出去不换行的问题处理,即回车换行的方法
- php获取textarea的值并处理回车换行的方法
- php获取textarea的值并处理回车换行的方法
- php获取textarea的值并处理回车换行的方法
- php获取textarea的值并处理回车换行的方法
- html中textarea中回车换行的处理方法
- 用文本框输入内容,显示时,识别回车换行空格的函数
- php 接收textarea内容 处理回车入库
- textarea自动换行,且文本框根据输入内容自适应高度
- PHP 处理textarea 输入值中的换行
- jQuery+php实时获取及响应文本框输入内容的方法
- PHP中,<textarea>里的内容保存MYSQL后,页面输出不换行的解决方法
- ASP.NET让文本框只能输入数字的一种方法,外加回车换Tab
- 文本区Textarea数据后台自动换行的处理方法
- [转]autoTextarea-文本框根据输入内容自适应高度
- PHP处理回车换行
- RichTextBox 回车不换行方法(回车可以设定为清空文本框或者发送)
- VS.net2003版本中,当在文本框里输入"<**"类似的内容时,的解决方法