我有一个文本区域,用户可以输入文本(可以包含任意数量的换行符),我会将该值插入数据库中,然后使用数据库中的值更新文本区域的值。
<textarea maxlength="500" cols="110" name="description" rows="15"><?php if(isset($newDesc)) echo snl2br_lose(nl2br($newDesc)); else echo nl2br_lose(nl2br($user->desc));?></textarea>
这是我的html代码。我遇到的问题是,虽然提交值并将其插入数据库有效,但当它填充文本区域的值时,它会使换行符的数量翻倍。 所以如果他们输入:
嗨 换行符 Foobar
它会让文本区域的值变成
嗨 换行符 换行符 Foobar
function nl2br_lose($string) {
return str_replace('<br/>', '
', str_replace('<br />', '
',str_replace('<br>', '
',str_replace('<br >', '
',$string))));
}
我使用的函数是将nl2br转换为textarea时使用的"returns"函数。然而,如果我从返回值中去掉nl2br_lose,它只有一个
,因此问题必须出现在那里。我一整天都在处理这个问题,有帮助感激不尽!