Home > Article > Backend Development > PHP 正则表达式婚配替换,导致APACHE停止工作
PHP 正则表达式匹配替换,导致APACHE停止工作
今天发现,模板引擎里的一段代码,当匹配很多的中文文字时,APACHE会停止工作。
$source = "习近平强调,要深入抓好铸魂育人,认真贯彻全军政治工作会议精神,掌握部队思想动态,有针对性抓好思想教育,
引导官兵坚决听党指挥,争做新一代革命军人。要深入抓好练兵备战,强化当兵打仗、带兵打仗思想,培育战斗精神,
抓好实战化军事训练,不断提高履行使命任务能力。要深入抓好正风肃纪,巩固和深化群众路线教育实践活动成果。";
$source=preg_replace("/([^a-zA-Z0-9_]{1,1})+(copy|fputs|fopen|file_put_contents|fwrite|eval|phpinfo)+( |\()/is", "", $source);
var_dump($source);
这一段正则的意思是什么? 把^去掉好像就可以?应该如何解决,谢谢
------解决思路----------------------
([^a-zA-Z0-9_]{1,1})+ 至少匹配一个除了 a-zA-Z0-9的字符
(copy
------解决思路----------------------
fputs
------解决思路----------------------
fopen
------解决思路----------------------
file_put_contents
------解决思路----------------------
fwrite
------解决思路----------------------
eval
------解决思路----------------------
phpinfo)+ 后面紧接这这些函数中的任意一个
(
------解决思路----------------------
\() 后面紧接着空格或“(”
is 不区分大小写,忽略换行
<br />$source = "习近平强调,要深入抓好铸魂育人,认真贯彻全军政治工作会议精神,掌握部队思想动态,有针对性抓好思想教育,<br />引导官兵坚决听党指挥,争做新一代革命军人。要深入抓好练兵备战,强化当兵打仗、带兵打仗思想,培育战斗精神,<br />抓好实战化军事训练,不断提高履行使命任务能力file_put_contents(。要深入抓好正风肃纪,巩固和深化群众路线教育实践活动成果。";<br /><br />$new=preg_replace("/([^a-zA-Z0-9_]{1,1})+(copy<br><font color='#FF8000'>------解决思路----------------------</font><br>fputs<br><font color='#FF8000'>------解决思路----------------------</font><br>fopen<br><font color='#FF8000'>------解决思路----------------------</font><br>file_put_contents<br><font color='#FF8000'>------解决思路----------------------</font><br>fwrite<br><font color='#FF8000'>------解决思路----------------------</font><br>eval<br><font color='#FF8000'>------解决思路----------------------</font><br>phpinfo)+( <br><font color='#FF8000'>------解决思路----------------------</font><br>\()/is", "", $source);<br /><br />echo $new; //。要深入抓好正风肃纪,巩固和深化群众路线教育实践活动成果。<br />