$content=str_replace("??",chr(10),$content);

解决方案 »

  1.   

    function doCheckChar($value)
    {
    $tt = stripslashes(stripslashes(stripslashes($value)));
        $tt = addslashes($tt);
        return $tt;
    }在存取之前进行调用就可以满足你的要求了
      

  2.   

    1、在入库前做html标记转换是没有意义的,因为你读出后还要做逆转换
    2、一定要做html标记转换的话,也只需
    $content=htmlspecialchars($content);
    $content=nl2br($content);
    $content=str_replace(chr(32)," ",$content); //注意,一般不做次转换。因为html标记中的空格也被转换了,如不做逆转换就一塌糊涂了
    3、做了html标记转换后内容一般用于直接输出html标记
    4、$content=str_replace(" ",chr(32),$content);不会出现你说的现象
    5、虽然你的代码做了不少无用功,次序上也不竟合理。但执行结果还是正确的
    6、你的代码似应改写成
    入库前做
    if(! get_magic_quotes_gpc())
      $content=addslashes($content);
    输出的时候
    $content=$row["content"];
    if(get_magic_quotes_runtime())
      $content = StripSlashes($content);
    $content=nl2br($content);
    $content = preg_replace("/\n +/","\n    ",$content);