现在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相关推荐

  1. smarty mysql demo_PHP Smarty模版简单使用方法

    本文实例讲述了PHP Smarty模版简单使用方法.分享给大家供大家参考,具体如下: Index.php: require('../libs/Smarty.class.php'); $smarty = ...

  2. Smarty中文手册,Smarty教程,Smarty模板的入门教材

    Smarty中文手册,Smarty教程,Smarty模板的入门教材 首先,这份Smarty中文手册的翻译工作是由喜悦国际村村民自发组织的,不代表任何人的意见和观点.对他们的无私奉献精神,我们表示感谢, ...

  3. win7完美兼容DynamipsGUI(小凡模拟器)攻略

    博主又是好久没写了,今天闲来无事与大家一起分享一下如何在windows7平台下完美兼容DynamipsGUI(小凡模拟器)的一个小窍门~ 对于学习cisco的朋友来说,DynamipsGUI(小凡模拟 ...

  4. 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. ...

  5. 4行代码搞定iframe高度自动变化,完美兼容(转)

    为什么80%的码农都做不了架构师?>>>    本帖转自: http://www.iteye.com/topic/839143 跨域问题 :http://ued.alimama.co ...

  6. php smarty安装,php smarty 安装 、配置、使用 及缓存cache的配置使用

    cache 使用: cache配置: $smarty->cache_dir = "/caches/";  //缓存目录 $smarty->caching = true; ...

  7. php smarty 分页类,Smarty分页类Smartypaginate

    不罗嗦了,直接上范例 function.paginate_first.php.function.paginate_last.php.function.paginate_prev.php.functio ...

  8. php7.2与php5.6共存,同域名下php5.6与7.2同时运行

    ## **前言** 证件照应用需要php7.2才能运行,而很多客户微擎站点上已经安装了很多应用,有些应用不支持php7,这就导致无法正常使用我们的应用,本教程将以宝塔配置的服务器环境来讲解如何在同一域 ...

  9. 源码包编译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 ...

  10. php yaf smarty,Yaf 结合用户自定义的视图(模板)引擎Smarty(Yaf + Smarty)

    Yaf 结合用户自定义的视图(模板)引擎Smarty(Yaf + Smarty) 来源:互联网 作者:佚名 时间:2015-08-06 07:55 对完成某个任务进行计时可使用progress_tim ...

最新文章

  1. 《软件定义网络:基于OpenFlow的SDN》一一2.5 本章总结
  2. 体验Vysor Pro
  3. 丢了好几年的 Auto CAD又拿起来......
  4. mysql忘记root密码咋办_MySQL忘记root用户密码怎么办?
  5. prototype.js 和jquery-1.6.2.js冲突问题解决方法
  6. 计算机学院足球队 英语怎么说,计算机学院举办2018届毕业生足球赛
  7. ZooKeeper之(四)配置与命令
  8. C++ Web 编程 CGI公共网关接口(CGI):第一个 CGI 程序
  9. 大数据可视化平台有什么特点
  10. java三大特性(封装、继承、多态)
  11. m2e (maven eclipse) 在运行一些命令时出现了无法compile(Unable to locate the Javac Compiler in:)...
  12. 杭电 2838 牛叉的树状数组
  13. 电源过冲怎么测试软件,【经验】以DL3000电子负载为例,3分钟学会一个电源动态响应测试技巧...
  14. KVM虚拟化平台搭建实操+KVM理论详解
  15. maven--Element ‘resource‘ cannot have character [children], because the type‘s content type is eleme
  16. excel 错位插入_Excel中图表插件导入错位的操作方法
  17. high charts柱状图更新(将原有柱状图更换为其他柱状图)删除重新绘制,柱状图设置渐变色
  18. python实现千牛客服自动回复语_千牛旺旺客服设置自动回复的技巧有哪些?总结性文章来啦...
  19. win7设置定时锁定计算机,Windows7电脑屏幕如何设置不自动锁屏
  20. c#物联网_基于C#实现日志记录与SQL SERVER的双向存储工控数字化之旅

热门文章

  1. DOTween的Sequence图例说明
  2. Luogu P1119 灾后重建 【floyd】By cellur925
  3. spring boot 尚桂谷学习笔记07 嵌入式容器 ---Web
  4. PHPExcel如何把该列的值设置为文本无科学计数?
  5. [未读]CLR via C#(第4版)
  6. Linux企业级项目实践之网络爬虫(27)——多路IO复用
  7. php:两个文件夹递归地比较,没有的文件自动复制过去
  8. PHP实现今天是星期几的几种写法
  9. Cocos2d-x中常用的类
  10. Security+ 学习笔记35 配置管理