smarty如何完美兼容php5.5和preg_replace_callback如何替换preg_replace
意思是说用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了。
本文发布于emc官网首页进入 中国 网站制作公司
推荐新闻
更多行业-
站长如何提高蜘蛛访问频率让网站收录量猛涨
一:必须打造一个合理的内链以保证百度蜘蛛的顺利爬行 网站制作就像...
2012-05-31 -
企业网站建设如何体现自身价值?
企业网站建设是一个不断完善的过程,那么,企业在网站更新过程中应该注意哪...
2018-08-21 -
城市门户网站建设几个要点?
城市门户网站建设是现代城市建设的重要组成部分。城市门户网站是一个城市无...
2023-04-25 -
现在SEO是焦躁、急功近利还是拔苗助长
SEO网站优化是个被太多人提起过的名词,它随着互联网的发展而变得日常火...
2014-02-24 -
详解SEO对B2C网站优化难点及突破点
现在电子商务类的购物平台有很多很多,而且有很大一部分正处在优化的初期阶...
2013-08-09 -
高端网站制作涉及到哪些内容?具体是什么?
网站制作的选择有很多,有普通的网站制作,就是简单的文字介绍加图片,只能...
2022-08-31
预约专业咨询顾问沟通!
免责声明
非常感谢您访问我们的网站。在您使用本网站之前,请您仔细阅读本声明的所有条款。
1、本站部分内容来源自网络,涉及到的部分文章和图片版权属于原作者,本站转载仅供大家学习和交流,切勿用于任何商业活动。
2、本站不承担用户因使用这些资源对自己和他人造成任何形式的损失或伤害。
3、本声明未涉及的问题参见国家有关法律法规,当本声明与国家法律法规冲突时,以国家法律法规为准。
4、如果侵害了您的合法权益,请您及时与我们,我们会在第一时间删除相关内容!
联系方式:010-60259772
电子邮件:394588593@qq.com