<?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的运行环境
如果你要取
<style>
之间的值</style>
那注意应该是这样写/<style>([^<]+)<\/style>/is
括号要包住加号。你这样的写法,不是正确的正则写法,并不知道会发生什么。