模板引擎正则表达式调试技巧
基于正则表达式替换的模板引擎很容易满足正则表达式最大回溯/递归的限制。惰性匹配并不可怕。在正常情况下,模板是不够用的,通常不超出极限,和Discuz的模板引擎的大量使用,但它容易写错误,遇到问题不重视、不学习。
当preg_ *返回null,你应该重视它,并判断函数is_null。
错误并不可怕,但最好是完全输出错误,因此很容易调试。
除了产生错误的原因外,匹配文本的输出和使用的规律性,因此很容易调试。
PHP代码
复制代码代码如下所示:
< PHP
如果(is_null($ TMP)){
error_code美元= preg_last_error();
开关($ error_code){
案例preg_no_error:
echo'preg_no_error;
打破;
案例preg_internal_error:
echo'preg_internal_error;
打破;
案例preg_backtrack_limit_error:
echo'preg_backtrack_limit_error;
打破;
案例preg_recursion_limit_error:
echo'preg_recursion_limit_error;
打破;
案例preg_bad_utf8_error:
echo'preg_bad_utf8_error;
打破;
案例preg_bad_utf8_offset_error:
echo'preg_bad_utf8_offset_error;
打破;
违约:
echo'unknow错误;
}
出口;
}
参考材料
1, 2010、laruence(PCRE)知道规则最大限度的 /递归回溯
2, 2011,php中文手册preg_last_error