<?php
$str ="<style>
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
</style>";
$str=ycs($str);
function ycs($str){
$str = preg_replace_callback("/<style>([^<])+<\/style>/is", function($matched){
return "abc";
}, $str);
return $str;
}
?>运行是崩溃了,经过测试,,只要把
/<style>([^<])+<\/style>/is
改成
'/<style>[^<]+<\/style>/is',
也就是去掉括号,就不崩溃了,为什么会这样,是PHP性能的问题吗???我用的是xampp的运行环境
$str ="<style>
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
.a{color: red;}
</style>";
$str=ycs($str);
function ycs($str){
$str = preg_replace_callback("/<style>([^<])+<\/style>/is", function($matched){
return "abc";
}, $str);
return $str;
}
?>运行是崩溃了,经过测试,,只要把
/<style>([^<])+<\/style>/is
改成
'/<style>[^<]+<\/style>/is',
也就是去掉括号,就不崩溃了,为什么会这样,是PHP性能的问题吗???我用的是xampp的运行环境
([^<])+ 是文法错,但未检查出来
([^<]+)