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 />抓好实战化军事训<p style="color:transparent">。本文来源gao!%daima.com搞$代*!码网1</p><cite>搞代gaodaima码</cite>练,不断提高履行使命任务能力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 />
作用可能是替换掉这些函数copy
——解决思路———————-
fputs
——解决思路———————-
fopen
——解决思路———————-
file_put_contents
——解决思路———————-
fwrite
——解决思路———————-
eval
——解决思路———————-
phpinfo
——解决思路———————-
wamp能运行
^ 是“除了”某某
[^a-zA-Z0-9_] 这表示 除了 a-zA-Z0-9_ 这些字符集合之外的字符都匹配
看起来,也没什么问题,不知道apache停掉的原因,可以看看apache的日志
——解决思路———————-
打开错误提示没有? 另外,楼主是怎么知道Apache停止工作的。