<?php
function content_r($content){
$content=str_replace('<','&lt;',$content);
$content=str_replace('>','&gt;',$content);
$content=str_replace('&','&amp;',$content);
$content=str_replace('"','&quot;',$content);
$content=str_replace(' ','&nbsp;',$content);
$content=str_replace(' \n','<br>',$content);
return $content;
}
$content="<a href=\"fff\">s  s</a>";
echo content_r($content);
?>
为什么输出的会是&lt;a href="fff"&gt;s  s&lt;/a&gt;呢?
而不是<a href=\"fff\">s  s</a>

解决方案 »

  1.   

    用它htmlspecialchars_decode($content)就好了
      

  2.   

    & 被重复替换了
    function content_r($content){
      $content=str_replace('&','&amp;',$content);
      $content=str_replace('<','&lt;',$content);
      $content=str_replace('>','&gt;',$content);
      //$content=str_replace('&','&amp;',$content);
      $content=str_replace('"','&quot;',$content);
      $content=str_replace(' ','&nbsp;',$content);
      $content=str_replace(' \n','<br>',$content);
      return $content;
    }
      

  3.   

    $content="<a href=\"fff\">s s</a>";
    由于你外围是双引号,则里面的\"实际上是转义了,即等于“"”
    $content='<a href=\"fff\">s s</a>';//这个就会输出“\"”了。函数里已经把"替换为&quot;了,而你看到的"实际上是&quot;