Rumah >pembangunan bahagian belakang >tutorial php >如何交表单的textarea提交的文本的回车,转化为<p>
表单的textarea里提交的文本,提交以后,被写入mysql数据库,然后再读出来显示出来。结果发现回车没有了,本来好多段,结果结合起来变成一大段。
有什么办法把在表单的textarea里提交的回车符转化为象
这样的html标记呢?在写入数据库前转化好?还是从数据库里读出来以后转化好?
能给个具体的代码吗?
我在网上搜到了这样的答案,就是在保存到数据库的时候,不作处理。读出来的时候,用这条语句:
CurrentContent = conn.myReader["Content"].ToString().Replace( Convert.ToString( ( char ) 13 ), "
" );
可这是面向对象的方法,我不太懂。翻译成面向过程的语句是什么?
你是要php代码还是要什么代码?
你是要php代码还是要什么代码?
echo nl2br($arr[txt]) ;
http://blog.csdn.net/beyondqqiang/article/details/8893663
这里应该可以帮到你的
http://blog.csdn.net/beyondqqiang/article/details/8893663
这里应该可以帮到你的
用nl2br($arr[txt])没有达到目的,仍然没有换行。
我自己写了一条:
str_replace((char(13)), "
", $arr[txt]);
好象有语法问题,直接页面打开是空白。(这暗示这个php中有些语句有语法错误。)
$arr['txt'] = nl2br($arr['txt']);
str_replace((char(13)), "
", $arr[txt]);
是错误的,因为 php 没有 char 函数,只有 chr 函数
但是写做 chr(13) 也是不妥的,因为 linux 下的文本中并没有这个“回车”符所以自己写的话,应写作
$arr['txt'] = preg_replace("/[\r\n]+/", "
", $arr['txt']);
$arr['txt'] = nl2br($arr['txt']);
str_replace((char(13)), "
", $arr[txt]);
是错误的,因为 php 没有 char 函数,只有 chr 函数
但是写做 chr(13) 也是不妥的,因为 linux 下的文本中并没有这个“回车”符所以自己写的话,应写作
$arr['txt'] = preg_replace("/[\r\n]+/", "
", $arr['txt']);
除非你的$arr['txt']没有文本换行,要不然nl2br 不会没有达到目的。
$arr['txt'] = nl2br($arr['txt']);
str_replace((char(13)), "
", $arr[txt]);
是错误的,因为 php 没有 char 函数,只有 chr 函数
但是写做 chr(13) 也是不妥的,因为 linux 下的文本中并没有这个“回车”符所以自己写的话,应写作
$arr['txt'] = preg_replace("/[\r\n]+/", "
", $arr['txt']);
$arr['txt'] = nl2br($arr['txt']);
str_replace((char(13)), "
", $arr[txt]);
是错误的,因为 php 没有 char 函数,只有 chr 函数
但是写做 chr(13) 也是不妥的,因为 linux 下的文本中并没有这个“回车”符所以自己写的话,应写作
$arr['txt'] = preg_replace("/[\r\n]+/", "
", $arr['txt']);
那是正则
$arr['txt'] = nl2br($arr['txt']);
str_replace((char(13)), "
", $arr[txt]);
是错误的,因为 php 没有 char 函数,只有 chr 函数
但是写做 chr(13) 也是不妥的,因为 linux 下的文本中并没有这个“回车”符所以自己写的话,应写作
$arr['txt'] = preg_replace("/[\r\n]+/", "
", $arr['txt']);
除非你的$arr['txt']没有文本换行,要不然nl2br 不会没有达到目的。
$arr['txt'] = nl2br($arr['txt']);
str_replace((char(13)), "
", $arr[txt]);
是错误的,因为 php 没有 char 函数,只有 chr 函数
但是写做 chr(13) 也是不妥的,因为 linux 下的文本中并没有这个“回车”符所以自己写的话,应写作
$arr['txt'] = preg_replace("/[\r\n]+/", "
", $arr['txt']);
$s = str_replace(' ', ' ', $s);
nl2br这个函数,是在 回车(0x0d) 换行(0x0a)前面加一个 '
' 串
前台用js处理下 replace(/\n|\r|(\r\n)|(\u0085)|(\u2028)|(\u2029)/g, "
");
$arr['txt'] = nl2br($arr['txt']);
str_replace((char(13)), "
", $arr[txt]);
是错误的,因为 php 没有 char 函数,只有 chr 函数
但是写做 chr(13) 也是不妥的,因为 linux 下的文本中并没有这个“回车”符所以自己写的话,应写作
$arr['txt'] = preg_replace("/[\r\n]+/", "
", $arr['txt']);
经过试验,我发现nl2br函数是可以的,但如果这样就不行:
$arr[txt] = nl2br($arr[txt]);
但是改成这样就行了:
$str = nl2br($arr[txt]);
然后显示$str,发现正常换行了,不知是什么原因。
而且它也可以把多行回车解释成多个
,显示的时候也是多个换行,这正是我需要的。谢谢!
str_replace(" ", " ", $arr[txt]);
经过试验,我发现nl2br函数是可以的,但如果这样就不行:
$arr[txt] = nl2br($arr[txt]);
但是改成这样就行了:
$str = nl2br($arr[txt]);
然后显示$str,发现正常换行了,不知是什么原因。
而且它也可以把多行回车解释成多个
,显示的时候也是多个换行,这正是我需要的。谢谢!
这是我成功过的
$select = mysql_query("select....") while($arr = mysql_fetch_array($result)) { echo str_replace(" ", " ", $arr['txt']); }
我在网上搜到了这样的答案,就是在保存到数据库的时候,不作处理。读出来的时候,用这条语句:
CurrentContent = conn.myReader["Content"].ToString().Replace( Convert.ToString( ( char ) 13 ), "
" );
可这是面向对象的方法,我不太懂。翻译成面向过程的语句是什么?
直接用
扩起来