从康盛产品(discuz)提取出来的模板类

2019-04-09 03:46:28王旭

}
$template = preg_replace("/{ifs+(.+?)}/ies", "$this->stripvtag('<? if(1) { ?>')", $template);
$template = preg_replace("/{tpls+(w+?)}/is", "<? include $this->getObj("1");?>", $template);
$template = preg_replace("/{tpls+(.+?)}/ise", "$this->stripvtag('<? include $this->getObj("1"); ?>')", $template);
$template = preg_replace("/{tmptpls+(w+?)}/is", "<? include $this->getObj("1", $this->objdir);?>", $template);
$template = preg_replace("/{tmptpls+(.+?)}/ise", "$this->stripvtag('<? include $this->getObj("1", $this->objdir); ?>')", $template);
$template = preg_replace("/{else}/is", "<? } else { ?>", $template);
$template = preg_replace("/{/if}/is", "<? } ?>", $template);
$template = preg_replace("/{/for}/is", "<? } ?>", $template);
$template = preg_replace("/$const_regexp/", "<?=1?>", $template);//note {else} 也符合常量格式,此处要注意先后顺序
$template = preg_replace("/($[a-zA-Z_]w+[)([a-zA-Z_]w+)]/i", "1'2']", $template);
$fp = fopen($this->objfile, 'w');
fwrite($fp, $template);
fclose($fp);
}
function arrayindex($name, $items) {
$items = preg_replace("/[([a-zA-Z_]w*)]/is", "['1']", $items);
return "<?=$name$items?>";
}
function stripvtag($s) {
$vtag_regexp = "<?=(@?$[a-zA-Z_]w*(?:[[w."'[]$]+])*)?>";
return preg_replace("/$vtag_regexp/is", "1", str_replace(""", '"', $s));
}
function loopsection($arr, $k, $v, $statement) {
$arr = $this->stripvtag($arr);
$k = $this->stripvtag($k);
$v = $this->stripvtag($v);
$statement = str_replace(""", '"', $statement);
return $k ? "<? foreach((array)$arr as $k => $v) {?>$statement<?}?>" : "<? foreach((array)$arr as $v) {?>$statement<? } ?>";
}
function __destruct() {
$content = ob_get_contents();
//处理 rewrite
if($this->rewrite) {
$arr=$this->rewrite_rule;
$s=$arr[0];
$e=$arr[1];
$content=preg_replace($s,$e,$content);
}
ob_end_clean();
echo $content;
}
}
$tpl = new template('skin',"default");
$tpl->objdir='tpp';
$tpl->rewrite=true;//开启rewrite 需要服务器支持
$tpl->rewrite_rule=array(array("/index.php/"),array("index.html")); //rewrite规则
$tpl->assign("indexurl","index.php");
$tpl->assign("str","我是字符串啦啦啦");
$tpl->assign("ec","我是被echo出来的");
$tpl->assign("subhtml","{subtpl ttt}这是用来引入一个模板文件的,这个就是引入ttt.htm");
$tpl->assign("a",array('dasdasd'.'bbbbbbb','cccccccccccccc'));
$tpl->assign("i",1);
$tpl->display("index");
?>

新建 tpl/default/index.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
相关文章 大家在看