当前位置: 博客首页 >> PHP >> 阅读正文

简单复杂的模板替换函数-新手

作者: 郑晓 分类: PHP 发布于: 2012-03-23 09:37 浏览:5,939 评论(2)


花了大半天的时间写的几个正则。。。这个正则表达式以前基本没用过,不太熟练,花了大半天才写了这么几行。。。而且感觉写的复杂了。。 <?php /<em> @author:郑晓 @模板替换函数 </em>/ function tpl($content) { //替换变量{tpl:$var} $content = preg<em>replace("/{tpl:(\$([a-zA-Z</em>]+))}/",'<?php echo \1 ?>',$content);</p> <p>//替换函数 函数名(带双引号的参数 或 带单引号的参数 或 日期格式参数 或 变量 或数组) $content = preg<em>replace("/{tpl:\s?(([a-z</em>]+)((\"[a-zA-Z<em>-]+\",?|'[a-zA-Z</em>-]+',?|\"[a-zA-Z\s\:-]+\",?|(\$[a-zA-Z<em>]+)([([a-zA-Z</em>-]+)])?,?)*))}/",'<?php \1 ;?>',$content);</p> <p>//替换loop循环开始 $content = preg<em>replace("/{tpl:loop\s(\$[a-zA-Z</em>]+)\s(\$[a-zA-Z<em>]+)\s(\$[a-zA-Z</em>]+)}/",'<?php foreach(\1 as \2=>\3) {?>',$content);</p> <p>//替换/loop循环结束 $content = preg_replace("/{tpl:\/loop}/",'<?php }?>',$content);</p> <p>//替换循环数组变量 $content = preg<em>replace("/{tpl:(\$[a-zA-Z</em>]+)([([a-zA-Z_-]+)])}/",'<?php \1\2 ;?>',$content);</p> <p>//替换if $content = preg<em>replace("/{tpl:(if\s(\$[a-zA-Z</em>]+)([([a-zA-Z<em>-]+)])?([=<>!]{1,2}(\"[0-9a-zA-Z</em>-]+\"|'[0-9a-zA-Z<em>-]+'|[0-9a-zA-Z]+|(\$[a-zA-Z</em>]+)([([a-zA-Z_-]+)])?)))}/",'<?php \1 { ?>',$content);</p> <p>//替换else $content = preg_replace("/{tpl:else}/",'<?php }else{ ?>',$content);</p> <p>//替换/if $content = preg_replace("/{tpl:\/if}/",'<?php }?>',$content);</p> <p>return $content; } ?>

       

本文采用知识共享署名-非商业性使用 3.0 中国大陆许可协议进行许可,转载时请注明出处及相应链接。

本文永久链接: https://www.zh30.com/the-simple-and-complex-the-template-the-replace-function-novice.html

简单复杂的模板替换函数-新手:目前有2 条留言

用户评论头像 东阳高复发表于 2012年03月24日 07:08[回复]

很久就想学,没开始。惭愧

    用户评论头像 郑晓发表于 2012年03月24日 17:44[回复]

    哈哈~我也是刚学。。就这点儿东西还弄了大半天 😀

发表评论

change vcode