问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

PHP7 preg_replace出错及解决办法

发布网友 发布时间:2023-11-26 00:24

我来回答

1个回答

热心网友 时间:2024-10-27 08:29

问题描述:

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 出错及解决办法的文章就介绍到这了,希望大家以后多多支持!

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...的士的.已经好几年了.10年多了好像.想问下.会不会报废? 98年上牌的普桑 现在还能过户吗?手续齐全 年审到2012年9月 宿迁牌照能... 一个圆柱形容器(如图)里面的水深8厘米,把一个底面半径6厘米,高4厘米... ...水的高度是8cm,把一个铁制实心圆锥直立在容器以后 一首轻快地日文歌歌词有a xi da no u mei da DNF第三季70级暴风眼纯刷图加点 dnf暴风眼技能末日暴风需要什么前置技能 70暴风眼加点(暴力点的)(复制狗衮) dnf女柔道纯杀图,觉醒满好还是1好?高手来。。。 榆林神东还招聘员工吗 十五分之八米的三分之一是多少米 恭城有什么好玩的???2 VB 托盘菜单问题 (在线等) 电脑鼠标插头与电脑主机的连接有什么注意事项?1 我的换个手机上是要两位好友给我发验证码才能通过,但是接...1 我要通过什么方法才能知道朋友的有没有换掉 不想让我知道...2 ...口中“浑身是宝”的杜梨有何用途?为什么现在很少见了? 数列求和:1*4+2*7+3*10+....+n(3n+1)...14 酷派7275手机恢复出厂设置后开不了机怎么办3 微信扫码付款少给我支付了五百 能查到对方的吗 微信扫码支付想知道对方的,怎么做5 微信扫码支付怎么查对方? 斗门富元广场为什么商辅没人租了 我的23岁娇蛮表妹为什么qq阅读有的,却搜不到,还有其他名字... 恭城怎么样,恭城有什么好玩的地方13 衣服洗衣液洗不干净怎么办? 电脑的鼠标插头要插在电脑哪里?29 我的电脑鼠标插头是圆的,这次买了一个长方形的,主机后面都插过... ...U=220∠0°电流向量i=4-j3A求二端网络的平均功 百世汇通快递多久能到945 新买的酷派8056手机不小心按了恢复出厂设置现在开不了机怎么...4 成都米兰柏羽双眼皮手术做的好吗?有没有推荐的医生? 如何在课间10分钟内高效学习? 黑色是由什么颜色组成的157 女朋友讲口袋钱装满了没地方放? 广东的 百世快递 到山东威海要多长时间 周五开始发货的话?知...4 家里的水龙头用了不久,上面好像有些黑点点怎么保养?买什么牌子...15 家里的水龙头每天在刚开时水会流出锈斑,再开一会就不会了,这样...1 桂林恭城县有什么好玩的? 有谁能告诉我桂林恭城有什么景点好玩?16 蛋仔派对怎么创造关卡 创造关卡攻略 恭城县有啥好玩的1 神医学霸小甜妻为什么在QQ阅读上搜索不到男主叫慕司宸女主叫顾... QQ阅读 主角叫什么枫 是个异能人 也是个孤儿 被一个特种兵... 有关爱的故事100字左右213 关于爱的感人事迹(100字以内)13 大学里我大便一次要抽4根烟,因为公厕实在太臭了,烟一断就受不... 律师事务所的律师必须对事务所的债务承担无限连带责任?14 互金服律师事务所是真的吗? 父姓乔 母姓田 五行缺金 有哪位高手能取个好听又吉利的名字? 还请高手...