1 3 7 - 1 4 4 1 - 9 7 9 7
首页 > 合作加盟 > 合作加盟详细内容

smarty怎样圆满兼容php5.5和preg_replace_callback怎样替代preg_replace

来源:建网站 | 作者:建网站 | 时间:2022-04-06 | 浏览:4657
字体大小:


目前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或者至电给本网站进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权的内容。
相关信息
  • QQ好友
  • QQ空间
  • 腾讯微博
  • 新浪微博
  • 人人网
  • 豆瓣网
  • Facebook
  • Twitter
  • linkedin
  • 谷歌Buzz


线

网软通在线


在线客服: 点击这里给我发消息                        

1231.jpg

留言内容