我知道之前已经问过这个问题,但答案不是我问题的解决方案。
当我使用此代码发布文本时:
$info=html_entity_decode(mysql_real_escape_string($_POST['info']));
喜欢:
fdsa
fdsa
fasf
当我用antered和space发布此文本时,它看起来像这样
<?php echo $info;?>
fdsa\r\nfdsa\r\nfasf\r\n
我试试这个nl2br($info)
但仍无效。
我需要以这种方式在文本中出现什么?
fdsa
fdsa
fasf
答案 0 :(得分:5)
将\r\n
改为<br>
,\n
改为<br>
,然后\r
改为<br>
:
$info = html_entity_decode($_POST['info']);
$info = str_replace('\r\n' , '<br>', $info);
$info = str_replace('\n' , '<br>', $info);
$info = str_replace('\r' , '<br>', $info);
$info = html_entities($info);
echo $info;
您必须进行多次替换,因为根据操作系统可以不同地表示新行(有关详细信息,请参阅this page)
最后,在回复之前使用html_entities
清理值,防止客户端攻击。
编辑:删除了mysql _...函数,不需要(该值不打算插入MySQL数据库,至少现在没有)。
另外,阅读Lashus建议并将其应用;)