php模板引擎常见的变量理会语法,看了许多的cms它们都有本身的模板引擎,因为折腾多了所以总结下他们的正则替换语法。
是这样的进程 ,模板文件->php正则替换标签->缓存php文件->读取输出
本文主要说的是变量、数组的模板引擎语法(正则法则)。
{$var} 理会成 <?php echo $var; ?> {$var['key']} 理会成 <?php echo $var['key']; ?><?php $str = '{$var} <br />{$var["key"]}'; $str = preg_replace("/\{(\\\$[a-zA-Z0-9_\[\]\'\"\$\.]+)\}/s", "<?php echo \\1; ?>", $str); highlight_string($str); ?>以上是最简朴的理会成变量的标签
{$var}这样写还以为贫苦?
还可以这样
虽然简写了会照成内容和标签斗嘴。好比 javascript、json等代码,所以改成
可变的模板标签
如:
利用非凡的字符:
利用“<[”代表 变量首标签
利用“]>”代表 变量尾标签
//输出 <?php echo $var; ?> <br /><?php echo $var["key"]; ?>
想想照旧写了三个正则了,效率都已经糟糕了,于是查了手册又写了个精简版
<?php /* @param str $str 要替换字符串内容 @param str $start 变量标签头 @param str $end 变量标签尾 @return str 理会后的字符串 */ function tags_2_var($str,$start,$end) { $start = quotemeta($start); $end = quotemeta($end); $search = '/'.$start.'([a-zA-Z0-9_\[\]\'\"\$\.]+)'.$end.'/s'; $str = preg_replace($search, '<?php echo $\\1; ?>', $str); return $str; } $start_tags = '{['; $end_tags = ']}'; $str = '{[var]} <br /><[var["key"]]>'; $str = tags_2_var($str,$start_tags,$end_tags); highlight_string($str); ?>end。。。