目前PHP5.5版本出来了,我装了一下修改还真不小,我们用的smarty竟然不兼容了,一运转出现以下毛病:
意义是说用preg_replace_callback来交换preg_replace里的/e参数,能够是因为平安性的思索,在php5.5中把这个参数作废了,然则这个preg_replace_callback函数用起来不随手,我就把阿谁Smarty_Compiler.class.php文件里的第270行里的preg_replace($search.'e'里的e去掉了,公然好了,但是标题又出来了,这个标题出来的概率不多,就是没法在smarty模板里写入php标签代码:{php}{/php}。
没法子仍是要把这个preg_replace()用preg_replace_callback()函数来交换,
建网站,具体交换法子以下:
在Smarty_Compiler这个类里到场一个法子:
function callback_source($matches){
return "".$this->_quote_replace($this->left_delimiter)."php".str_repeat("n",substr_count("","n"))."".$this->_quote_replace($this->right_delimiter)."";
}
然后在第270行阁下找到:
$source_content = preg_replace($search.'e', "'"
. $this->_quote_replace($this->left_delimiter) . 'php'
. "' . str_repeat("n", substr_count('\0', "n")) .'"
. $this->_quote_replace($this->right_delimiter)
. "'"
, $source_content);
交换成:
$source_content = preg_replace_callback($search,
array("self","callback_source")
, $source_content);
便可,如许就能够完善兼容php5.5了。
本文宣告于尚品中国 网站制作公司
免责声明:本文内容由互联网用户自发贡献自行上传,本网站也不承担相关的法律责任。如果您发现本文章中有涉嫌抄袭的内容,请发送邮件至:sales@sznetsoft.com或者至电给本网站进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权的内容。