$mess = $_GET["mess"];
$mess = str_replace("&","&",$mess);
$mess = str_replace("<","&lt;",$mess);
$mess = str_replace(">","&gt;",$mess);
$mess = str_replace("\n","<br />",$mess);
$mess = str_replace("\r","",$mess);$sql="insert into chat values('','$username','$mess',now())"
< > $ 能替换成功,换行就不行呢?

解决方案 »

  1.   

    <?php
    $text = $_GET['text'];
    $text = str_replace("&","&amp;",$text);
    $text = str_replace("<","&lt;",$text);
    $text = str_replace(">","&gt;",$text); 
    $text = str_replace("\n"," <br / >",$text); 
    $text = str_replace("\r","",$text);  echo($text);

    ?> 
    楼主,经测试,没问题啊,可以正常换行~~~~
      

  2.   

    我以前也是这个问题 当输入的时候按回车  可以替换正常 
    但一直输入不按 就没有可替换的了
    我用的是加了个css样式
    word-break:break-all;
      

  3.   

    怎么操作
    我一般入库就是用那个转换为html的跟add那个函数 就是加\的php需要屏蔽and啊 什么的不?
      

  4.   

    不入数据库测试没有问题
    现在我解决的办法也是用的CSS~
      

  5.   

    或者preg_replace("/\r\n|\n|\r/", "<br />", $text);
      

  6.   

    貌似你这个还可以这样写$arr  = array("&", " <", " >", "/\r\n|\n|\r/");
    $patt = array("&amp;", "&lt;", "&gt;", "<BR />");$text = str_replace($arr, $patt, $text);