PHP模板引擎正则替换函数 preg_replace 与 preg_replace_callback 使用总结
在编写PHP模板引擎工具类时,以前常用的一个正则替换函数为 preg_replace() ,加上正则修饰符 /e ,就能够执行强大的 回调函数 ,实现模板引擎编译(其实就是字符串替换)。 详情介绍参考博文: PHP函数preg_replace() 正则替换所有符合条件的字符串 应用举例如下: <?php /** * 模板解析类 */ class Template { public function compile($template) { // if逻辑 $template = preg_replace("/\<\!\-\-\{if\s+(.+?)\}\-\-\>/e", "\$this->ifTag('\\1')", $template); return $template; } /** * if 标签 */ protected function ifTag($str) { //$str = stripslashes($str); // 去反转义 return '<?php if (' . $str . ') { ?>'; } } $template = 'xxx<!--{if $user[\'userName\']}-->yyy<!--{if $user["password"]}-->zzz'; $tplComplier = new Template(); $template