// var $pattern_var="/{$left_tag}\\$([\w\d] ){$right_tag}/";
$replace_var='
var_tpl_arr["$1"];?>';
if (preg_match($pattern_var, $content)) {
$content=preg_replace($pattern_var, $replace_var, $content);
}
// foreach
preg_match_all("/{$left_tag}foreach\s ([^{] ?){$right_tag}/is", $content, $match_foreach);
if (isset($match_foreach[1]) && is_array($match_foreach)) {
foreach($match_foreach[1] as $match_key=> $match_value) {
$split_foreachs=array_filter(preg_split('/\s /is', $match_value));
$new_foreach_tag=array();
foreach($split_foreachs as $split_foreach) {
$split=explode("=", $split_foreach);
if (count($split==2)) {
if(in_array($split[0], array("from","item","key"))) {
//过滤标签 不存在过滤
$new_foreach_tag[$split[0]]=$split[1];
}
}
}
$from=$key=$item='';
extract($new_foreach_tag);
$key=($key) ? '$'.$key.'=>' : '' ;
$replace_foreach='
var_tpl_arr["'.$from.'"] as '.$key.' $'.$item.') { ?>';
$content=str_replace($match_foreach[0][$match_key], $replace_foreach, $content);
}
}
$pattern_foreach="/{$left_tag}\/foreach{$right_tag}/";
$replace_foreach="
";
if (preg_match($pattern_foreach, $content)) {
$content=preg_replace($pattern_foreach, $replace_foreach, $content);
}
// var in statement
$pattern_var="/{$left_tag}==([\w\d] ){$right_tag}/";
$replace_var='
';
if (preg_match($pattern_var, $content)) {
$content=preg_replace($pattern_var, $replace_var, $content);
}
解析后:
代码如下 复制代码 <?php echo $this->var_tpl_arr["web_tile"];?>
var_tpl_arr["article_title"];?>
-- by
var_tpl_arr["author"];?>
var_tpl_arr["content"];?>
-- publish @
var_tpl_arr["time"];?>
foreach test:
var_tpl_arr["url"] as $b=> $c) { ?>
">
使用:
代码如下 复制代码 require_once 'core/YATP.class.php';
$app=new YATP();
date_default_timezone_set("Asia/Shanghai");
$app->is_cache=false;
$article_title="yet,it is a simple template engine";
$author="sanwhiteyu@tencent.com";
$web_tile="just test ";
$content="It is easy to write a simple template engine for yourself,what u can do is try to do it!";
$time=date("Y-m-d H:i:s",time());
$url=array(
"url1"=>"http://www.jquerycn.cn",
"url2"=>"http://www.jquerycn.cn",
);
$app->assign("article_title",$article_title);
$app->assign("author",$author);
$app->assign("web_tile",$web_tile);
$app->assign("content",$content);
$app->assign("time",$time);
$app->assign("url",$url);
$app->display("index.html");
// end of script
您可能感兴趣的文章:
php遍历数组之list foreach each用法总结
php遍历数组的几种方法(for foreach list each while)
php数组遍历方法详解(for foreach list each key)
php数组遍历foreach ($arr as &$value)用法介绍
php foreach 循环遍历数组方法
php遍历数组list foreach each方法实例
php遍历数组 foreach each() list()方法总结
php一维数组遍历方法的比较分析
php数组入门教程之数组遍历
PHP简短而安全的数组遍历
举报文章
请选择举报类型
内容侵权
涉嫌营销
内容抄袭
违法信息
其他
上传截图
格式支持JPEG/PNG/JPG,图片不超过1.9M
取消
确认
已经收到您得举报信息,我们会尽快审核