$str=preg_replace("/\{:tpl\s+(.+?)\}/is","<?php include tpl('\\1'); ?>\n",$str);
这条正则是把子模板文件include 进来,例如:{:tpl head}转换成<php include tpl('head');?>这样做虽然很好用,但是每次运行都要include 文件,显然需要一定的开销,怎样才能把"<?php include tpl('\\1'); ?>\n"替换成读取对应模板文件的内容呢?我写了个函数用于获取子模板内容的,但是把 <?php include tpl('\\1'); ?> 替换成 subtpl("\\1"),这个\\1就不会用正则的结果替换,而是本意1,用 "subtpl(\\1)",1是替换成想要的结果了,但也不是执行函数的结果,这个问题的难点就是如何用正则的结果作为执行函数的参数,再把执行的结果替换进去?