从输出中删除\ r \ n

时间:2014-11-26 10:30:16

标签: php mysql

我知道之前已经问过这个问题,但答案不是我问题的解决方案。

当我使用此代码发布文本时:

$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

1 个答案:

答案 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建议并将其应用;)