PHP教程:基于正则表达式替换的模板引擎
程序员文章站
2022-06-13 13:46:32
...
很久没有遇上PHP难题了,这次正则问题占了一点时间,还是老问题最大回溯、递归限制问题。学习透之后其实并不难修改调试有这类问题的正则。主要是以下几点。
基于正则表达式替换的模板引擎很容易遇上正则表达式最大回溯/递归的限制。
惰性匹配并不可怕,正常情况下模板并不会不够用,往往不会超出限制,discuz的模板引擎就大量使用了。但是因此而不去注意、不去学习,则容易书写错误并遇上问题。
当preg_*返回的是null的时候则要注意了,判断函数是is_null.
出错并不可怕,但是最好把错误都完整的输出,这样调试就很容易了。
除了输出出错原因,还要输出匹配的文本和使用的正则,这样就很容易调试了。
PHP代码
参考资料
1、2010, Laruence 《深悉正则(pcre)最大回溯/递归限制》
2、2011, PHP中文手册 preg_last_error
上一篇: php匹配字符中链接地址的方法_PHP
推荐阅读
-
Laravel模板引擎Blade中section的一些标签的区别介绍,laravelblade_PHP教程
-
PHP正则表达式替换站点关键字链接后空白的问题解决,正则表达式关键字_PHP教程
-
Laravel模板引擎Blade中section的一些标签的区别介绍_PHP教程
-
PHP模板引擎Smarty的缓存使用_PHP教程
-
ThinkPHP内置模板引擎的使用方法总结_PHP教程
-
PHP教程:基于正则表达式替换的模板引擎
-
PHP实现通过正则表达式替换回调的内容标签_PHP教程
-
PHP实现通过正则表达式替换回调的内容标签,正则表达式回调_PHP教程
-
PHP实现通过正则表达式替换回调的内容标签_PHP教程
-
PHP把空格、换行符、中文逗号等替换成英文逗号的正则表达式_PHP教程