PHP7 preg_replace出错怎么解决
发表于:2025-11-13 作者:千家信息网编辑
千家信息网最后更新 2025年11月13日,这篇文章主要讲解了"PHP7 preg_replace出错怎么解决",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"PHP7 preg_replace出错
千家信息网最后更新 2025年11月13日PHP7 preg_replace出错怎么解决
这篇文章主要讲解了"PHP7 preg_replace出错怎么解决",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"PHP7 preg_replace出错怎么解决"吧!
问题描述:
PHP7废弃了preg_replace?
原本是中php5中处理url中后面参数替换清除的,代码如下
$url = preg_replace('/([?&])src=[^&]+(&?)/e', '"$2"==""?"":"$1"', $url);但是到php7中就报错了
需要用preg_replace_callback来替换,请问该咋办?
相关代码
$url = preg_replace('/([?&])src=[^&]+(&?)/e', '"$2"==""?"":"$1"', $url);问题分析:
e 修饰符因为存在安全隐患 自 5.3 开始就已经标记为了待移除的内容。
转而接替的是 preg_replace_callback,此方法第二个参数为一个回调函数,回调函数会自动传入比配的分组作为参数。在回调函数内部通过数组下标访问匹配组。(手机码字 未格式化代码)
preg_replace_callback('/([?&])src=[^&]+(&?)/', function($matches){ return $matches[2]==""?"":$matches[1];}, $url);知识点扩展:
PHP7已经删除了preg_replace的e修饰符
官网提示是这样的,对/e修饰符的支持已删除。请改用preg_replace_callback()
原因是/e 修正符使 preg_replace() 将 replacement 参数当作 PHP 代码(在适当的逆向引用替换完之后),会被一句话后门使用
看看smarty中是也是这样用的,也是存在问题
$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);可以把smarty模板修改成这个$source_content = preg_replace_callback($search, function ($matches){$str="";$str.=$this->_quote_replace($this->left_delimiter) . 'php';$str.=str_repeat("\\n\\", substr_count($matches[1], "\\n\\"));$str.=$this->_quote_replace($this->right_delimiter);return $str;}, $source_content);感谢各位的阅读,以上就是"PHP7 preg_replace出错怎么解决"的内容了,经过本文的学习后,相信大家对PHP7 preg_replace出错怎么解决这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
代码
参数
问题
内容
函数
学习
知识
知识点
适当
安全
一句话
下标
原因
原本
后门
就是
思路
情况
手机
数组
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
体验版我的世界如何进入服务器
软件开发第三章
服务器被修空调的偷了
企业网络安全电话
知乎运用的网络技术
苹果怎么一直连接服务器失败
服务器私有云
arma3服务器可以进国内吗
安卓软件开发可视版
学校网络安全问题自查报告
数据库的日期加减
数据库设计哪个阶段耗时长
数据库分列查询
doris数据库简介
软件开发设计文档实用模板
桓台企业管理软件开发定制开发
公司里设计数据库的叫啥
安全狗服务器ftp启动不了
服务器如何打开安全规则端口
计算机国家三级网络技术
郑州文乐网络技术服务有限公司
数据库安全有效性
数据库成长记忆
上海网络服务器机柜多少钱
数据库建设规范
关系数据库查询的数据源
学习sql应该安装哪个数据库
大同软件开发要多少钱
宝山区正规软件开发订做价格
野三坡住宿软件开发