public function testTmpExreg()
{
$str = '';
for($i = 0; $i< 1352; $i++){
$str .= 'A';
}
// preg_match('#.*?#siU', $str, $m);
// var_dump($m);
// exit;
$content = '
{% block body %}
{% block header %}'.
$str
.'{% /block %}
{% /block %}';
try{
$match = preg_match_all('#\{%\s*block(.*)\s*%\}((.*(?R)*)*)\{%\s*/\s*block\s*%\}#siU', $content, $matches);
// $match = preg_match('#\{%\s*block\s+body\s*%\}(((.*)(?(?!\{%\s*/\s*block.*\s*%\})((\{%\s*block.*\s*%\})((.*(?4)*)*)(\{%\s*/\s*block\s*%\}))))*?)\{%\s*/\s*block\s*%\}#siU', $content, $matches); //
var_dump(112,$match);
var_dump($matches);
var_dump(strlen($content));
}catch(\Throwable $e){
var_dump($e->__toString());
}
exit;
}
有没有人知道 为什么 for($i = 0; $i< 1351; $i++){ 这一行$i超过1352时,这个正则就不能匹配了?
建议给代码加上高亮
– dudu 7年前