<code><?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;} "; $str=ycs($str); function ycs($str){ $str = preg_replace_callback("/<style>([^<])+<\/style>/is", function($matched){ return "abc"; }, $str); return $str; } ?> </style></code>
运行是崩溃了,经过测试,,只要把
<code>/<style>([^<])+<\/style>/is</style></code>로그인 후 복사로그인 후 복사改成
<code>'/<style>[^<]+<\/style>/is', </style></code>로그인 후 복사로그인 후 복사也就是去掉括号,就不崩溃了,为什么会这样,是PHP性能的问题吗???我用的是xampp的运行环境
<code><?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;} "; $str=ycs($str); function ycs($str){ $str = preg_replace_callback("/<style>([^<])+<\/style>/is", function($matched){ return "abc"; }, $str); return $str; } ?> </style></code>
运行是崩溃了,经过测试,,只要把
<code>/<style>([^<])+<\/style>/is</style></code>로그인 후 복사로그인 후 복사改成
<code>'/<style>[^<]+<\/style>/is', </style></code>로그인 후 복사로그인 후 복사也就是去掉括号,就不崩溃了,为什么会这样,是PHP性能的问题吗???我用的是xampp的运行环境
如果你要取 <style></style>
之间的值 那注意应该是这样写
/<style>([^<]+)<\/style>/is</style>
括号要包住加号。你这样的写法,不是正确的正则写法,并不知道会发生什么。