smarty php5.5,smarty如何完美兼容php5.5和preg_replace_callback如何替换preg_r
现在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了。
smarty php5.5,smarty如何完美兼容php5.5和preg_replace_callback如何替换preg_r相关推荐
- smarty mysql demo_PHP Smarty模版简单使用方法
本文实例讲述了PHP Smarty模版简单使用方法.分享给大家供大家参考,具体如下: Index.php: require('../libs/Smarty.class.php'); $smarty = ...
- Smarty中文手册,Smarty教程,Smarty模板的入门教材
Smarty中文手册,Smarty教程,Smarty模板的入门教材 首先,这份Smarty中文手册的翻译工作是由喜悦国际村村民自发组织的,不代表任何人的意见和观点.对他们的无私奉献精神,我们表示感谢, ...
- win7完美兼容DynamipsGUI(小凡模拟器)攻略
博主又是好久没写了,今天闲来无事与大家一起分享一下如何在windows7平台下完美兼容DynamipsGUI(小凡模拟器)的一个小窍门~ 对于学习cisco的朋友来说,DynamipsGUI(小凡模拟 ...
- centos6.x 安装php5.6 tar,CentOS6.x安装php5.6.x
一.系统及安装说明 系统:CentOS6.x_x64,php5.6.12版本以及四个扩展模块(libmcrypt-2.5.8.tar.gz ;php-redis.tar.gz;jpegsrc.v8d. ...
- 4行代码搞定iframe高度自动变化,完美兼容(转)
为什么80%的码农都做不了架构师?>>> 本帖转自: http://www.iteye.com/topic/839143 跨域问题 :http://ued.alimama.co ...
- php smarty安装,php smarty 安装 、配置、使用 及缓存cache的配置使用
cache 使用: cache配置: $smarty->cache_dir = "/caches/"; //缓存目录 $smarty->caching = true; ...
- php smarty 分页类,Smarty分页类Smartypaginate
不罗嗦了,直接上范例 function.paginate_first.php.function.paginate_last.php.function.paginate_prev.php.functio ...
- php7.2与php5.6共存,同域名下php5.6与7.2同时运行
## **前言** 证件照应用需要php7.2才能运行,而很多客户微擎站点上已经安装了很多应用,有些应用不支持php7,这就导致无法正常使用我们的应用,本教程将以宝塔配置的服务器环境来讲解如何在同一域 ...
- 源码包编译PHP5.6,源码编译安装php5.6
下载php源代码 cd /usr/local/src wget http://cn2.php.net/get/php-5.6.24.tar.gz/from/this/mirror mv mirror ...
- php yaf smarty,Yaf 结合用户自定义的视图(模板)引擎Smarty(Yaf + Smarty)
Yaf 结合用户自定义的视图(模板)引擎Smarty(Yaf + Smarty) 来源:互联网 作者:佚名 时间:2015-08-06 07:55 对完成某个任务进行计时可使用progress_tim ...
最新文章
- 《软件定义网络:基于OpenFlow的SDN》一一2.5 本章总结
- 体验Vysor Pro
- 丢了好几年的 Auto CAD又拿起来......
- mysql忘记root密码咋办_MySQL忘记root用户密码怎么办?
- prototype.js 和jquery-1.6.2.js冲突问题解决方法
- 计算机学院足球队 英语怎么说,计算机学院举办2018届毕业生足球赛
- ZooKeeper之(四)配置与命令
- C++ Web 编程 CGI公共网关接口(CGI):第一个 CGI 程序
- 大数据可视化平台有什么特点
- java三大特性(封装、继承、多态)
- m2e (maven eclipse) 在运行一些命令时出现了无法compile(Unable to locate the Javac Compiler in:)...
- 杭电 2838 牛叉的树状数组
- 电源过冲怎么测试软件,【经验】以DL3000电子负载为例,3分钟学会一个电源动态响应测试技巧...
- KVM虚拟化平台搭建实操+KVM理论详解
- maven--Element ‘resource‘ cannot have character [children], because the type‘s content type is eleme
- excel 错位插入_Excel中图表插件导入错位的操作方法
- high charts柱状图更新(将原有柱状图更换为其他柱状图)删除重新绘制,柱状图设置渐变色
- python实现千牛客服自动回复语_千牛旺旺客服设置自动回复的技巧有哪些?总结性文章来啦...
- win7设置定时锁定计算机,Windows7电脑屏幕如何设置不自动锁屏
- c#物联网_基于C#实现日志记录与SQL SERVER的双向存储工控数字化之旅