解决方案 »

  1.   

    把有 /e 属性的拿出来单做 $source = preg_replace_callback(
       '/{nocache}(.+?){\/nocache}/is', 
       create_function('$r', "'{insert name=\"nocache\" ' . '" . $this->_echash . "' . base64_encode($r[1]) . '}'"),
       $source);
      

  2.   

     /e 修正符使 preg_replace() 将 replacement 参数当作 PHP 代码(在适当的逆向引用替换完之后)