我用下面的代码从我的文本区获取数据
$about_me=mysql_real_escape_string(nl2br($_POST['about_me']));
1. 使用$_POST接收数据。2. nl2br使刹车,所以如果我回显这段代码给用户,他会看到是否有新的行。3.
Mysql_real_escape_string用于保护代码在进入数据库之前不被mysql注入。如果我回显这段代码,一切正常
但是如果我再次编辑它通过textarea, php去mysql获取数据,把它放在textarea,我看到<br>
符号…
如何在文本区编辑文本时摆脱它们?
如何在文本区编辑文本时摆脱它们?
当然要停止使用nl2br()
。这是完全错误的。
你使用nl2br()
当你想输出数据,包含换行到HTML,而不是当你想把它存储在数据库中。保存数据不变,格式化以供查看。
如果您将其输出到<textarea>
中,您也不需要使用它,因为文本区域显示换行符(而HTML通常不会)。对于文本区,您需要htmlspecialchars()
,但显然这已经发生了-否则您不会看到文字<br>
显示
<?php
function br2nl($string){
$return=eregi_replace('<br[[:space:]]*/?'.
'[[:space:]]*>',chr(13).chr(10),$string);
return $return;
}
?>
在从数据库获取数据和打印到textarea之前使用。
http://php.net/manual/en/function.nl2br.php查看本页的示例