›
我们宗旨:
满意驱动,创新共赢!
南 粤 通 信 网
- 国内领先的科技创新与通信解决方案服务商 -
业务热线:4008-528-159
科技创新服务商
首页
电信/移动/宽带 业务
宽带报装
包月电话
手机套餐
→ 宽带/固话 新装←
有线固话
呼叫转移
400 电话
企业彩铃
数字中继
固话靓号
智能工程/智能办公
网络布线
企业专线
机房建设
人脸识别
安防监控
解决方案
机房升级
AP 升级
电脑升级
展会WIFI
AI智能搜索
热门搜索:
AI模型
官方淘宝
国内领先的科技创新与通信解决方案服务商
专注于AI大模型实施及平价通信服务的深度融合!
“南粤通信网不仅提供光纤宽带、IP城域网、无线固话、有线固话、网络固话、固话靓号、综合布线、数字人外呼系统通信服务,更致力于科技创新,专注于AI大模型的实施与落地,助力企业实现数字化转型与智能化升级。业务咨询热线:4008-528-159”
全部
综合网络技术
常见电话故障
宽带常见问题
业务综合问题
常用技术文章
产品参数文章
AI技术分享
免费布署DeepSeep 大模型
首页
>
帮助中心
> preg_replace()用preg_replace_callback()函数来替换
preg_replace()用preg_replace_callback()函数来替换
类别: 常用技术文章 来源:www.nanyuetong.com
摘要:
现在PHP5.5版本出来了,我装了一下改动还真不小,咱们用的smarty居然不兼容了,一运行出现以下错误: 意思是说用preg_replace_callback来代替preg_replace里的/e参数,可能是因为安全性的考虑,在php5.5中把这个参数取消了,但是这个preg_replace_callback函数用起来不顺手,我就把那个Smarty_Compil...
现在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了。
【
收藏本页
】 【
返回顶部
】 【
关闭窗口
】
官方微信
扫一扫 | 关注南粤通信官方微信 | 惊喜无限哟!
回顶部