问题1:
htmlentities是没有问题的,输出到客户端的HTML代码是直接显示的。问题2:
有时会出错,你可以这样:mysql_real_escape_string函数或mysql_escape_string进行转义。如果不是MySQL,也可以addslashes函数用代替。用法,以上三个函数mysql_real_escape_string/*等等*/($string)。转义后,是没有问题的,照样写入数据库,什么特殊字符是不变的。

解决方案 »

  1.   

    1.htmlentities 转义所有的非 ASCII 字符 和 HTML 字符 
      < 转化成 &lt; 
      > 转化成 &gt;
      " 转化成 &quot;
    2.addslashes 在字符串text中的特殊字符之前加“\”
      " 转变成 \"<?php$str1 = "<input type=button value='button' onclick='a(this);'>";$str2 = "<input type=button value=\"button\" onclick=\"a(this);\">";echo htmlentities($str1);
    echo '<br />';
    echo htmlentities($str2);
    echo '<br />';
    echo addslashes($str1);
    echo '<br />';
    echo addslashes($str2);
    echo '<br />';$str3 = "\"'/ <>";
    echo htmlentities($str3);
    echo '<br />';
    echo addslashes($str3);
    ?>自己试试就明白了!