真接用 echo 输出代码不行吗?
但不要用引号引着要输出的变量

解决方案 »

  1.   

    我曾经想过这个问题,而且自认为找出了最好的解决方案:
    web数据无非两种情况,因此我添加一个数据属性:is_html域,默认值为0.
    在数据库中存放的数据就是由web表单直接输入的,不需要处理,在表单中添加一个复选框,当输入的数据要求在输出时按照HTML解释的话,选中它,并将数据属性1存入is_html中,这就表示该记录要以html解释.
    在输出时:先判断is_html的值,mytable:
    id  content  is_html$sql="SELECT * FROM mytable WHERE id=".$id;
    $rs=mysql_query($sql);
    $obj=mysql_fetch_object($rs);
    if($obj->is_html == 1)
    echo $obj->content;
    else
    {
      $content=htmlspecialchars($obj->content);//转换"<",">","&"
      $content=str_replace(" ","&nbsp;",$content);//转换空白
      $content=nl2br($content);//转换换行
      //注意上面的三行不能颠倒
    }
      

  2.   

    输出的地方前后不能有<pre>
      

  3.   

    一般的是可以直接echo的
    但遇到特殊字符号,用转化函数:htmlspecialchars\str_replace\nl2br
    " "   ---------->    &nbsp;
    >     ---------->    &gt;
    <     ---------->    &lt;
    回车换行 ------->    <br>
    符号(如:')--->    使用转意符号(如:\')
      

  4.   

    $str=htmlspecialchars($obj->str);  //转换"<",">","&"
    $str=str_replace(" ","&nbsp;",$str);  
    $str=str_replace("\t ","&nbsp;&nbsp;&nbsp;&nbsp;",$str);  
    $str=str_replace("\n","<br>",$str);