$this->assign('style',$style);//变量
$this->display();//模板
<?php
/*配制*/
$config=array(
/* 数据库设置 */
'DB_TYPE' => 'mysql', // 数据库类型
'DB_HOST' => 'localhost', // 服务器地址
'DB_NAME' => 'php', // 数据库名
'DB_USER' => 'root', // 用户名
'DB_PWD' => '123', // 密码
'DB_PREFIX' => 'jiaodu_', // 数据库表前缀
'DB_CHARSET' => 'utf8', // 数据库编码默认采用utf8
/* SESSION设置 */
'SESSION_START' => 'user', //session方式,文件方式:file, 数据库设置为user
/* 模板引擎设置 */
'TMPL_ADMIN_PATH' =>'admin',//后台目录名称
'TMPL_COMPILE_PATH' =>'/Runtime',//读写目录
'TMPL_PATH' =>'/template',//模板路径
'TMPL_TEMPLATE_SUFFIX' => 'html', // 默认模板文件后缀
'TMPL_L_DELIM' => '{', // 模板引擎普通标签开始标记
'TMPL_R_DELIM' => '}', // 模板引擎普通标签结束标记
'TMPL_STRIP_SPACE' => true, // 是否去除模板文件里面的html空格与换行
'TMPL_CACHE_ON' => true, // 是否开启模板编译缓存,设为false则每次都会重新编译,一般用于模板调试
/* URL设置 */
'URL_HTML_SUFFIX' => 'html', // URL伪静态后缀设置
'URL_PATHINFO_MODEL' => 2, // URL模式,1不隐藏、2隐藏入口文件[需要规则支持]
/*其它设置*/
'PASS_ENCRYPT' =>'www.php.cn',//加密因子
);<?php
/**
* 模板解析类
* @author 角度 QQ:1286522207
*
*/
class template extends Action{
private $config;
private $CompileDir;//编译目录
private $templateDir;//模板目录
private $templateFile;
private $debuy=1;//是否调试
private $assign;//变量
public function __construct($templateFile){
$this->config();
$this->templateFile=$templateFile;
}
private function config(){
global $config;
$this->config=$config;
$this->CompileDir=$this->config['TMPL_COMPILE_PATH'].'/Compile';
$this->templateDir=$this->config['TMPL_PATH'];
$this->debuy=$this->config['TMPL_CACHE_ON'];
}
/**
* 检查编译目录
*/
public function is_CompileDir(){
$dir=APP_PATH.$this->CompileDir;
if (!is_dir($dir)){
if (!mkdir($dir)){
die('编译目录自动创建失败,请手动创建');
}
}
if (!is_writeable($dir)){
die('编译目录没有写入权');
}
}
/**
* 注入变量
*/
public function assign($assign) {
$this->assign=$assign;
}
/**
* 输出模板
*/
public function display(){
$this->is_CompileDir();
$this->CompileCheck();
}
/**
* 检查编译
*/
private function CompileCheck(){
$this->is_CompileDir();
$filename=APP_PATH.$this->CompileDir.'/'.md5($this->templateFile).'.php';
if ($this->debuy || !is_file($filename)){
$this->tmplstrtpspace($filename);
}
foreach ($this->assign as $key=>$row){
$$key=$row;
}
include $filename;
}
/**
* 格式化模板并写入编译
*/
private function tmplstrtpspace($filename){
if ($this->config['TMPL_STRIP_SPACE']){
$find = array("~>s+<~","~>(s+
|
)~");
$replace = array("><",">");
$tmplContent = preg_replace($find, $replace,$this->templateCheck());
}else {
$tmplContent = $this->templateCheck();
}
if (file_put_contents($filename,trim($tmplContent))){
return true;
}else {
die('编译写入失败');
}
}
/**
* 检查模板
*/
private function templateCheck(){
$PATH=APP_PATH.$this->templateDir.'/'.$this->templateFile.'.html';
if (is_file($PATH)){
return $this->template_compile(file_get_contents ( $PATH ));
}else {
die('模板:'.$this->templateFile.'.html 不存在');
}
}
/**
* 编译模板
*/
private function template_compile($template_Conver){
if (empty($template_Conver)){
return $template_Conver;
}else {
$_Left= $this->config['TMPL_L_DELIM'];
$_Right= $this->config['TMPL_R_DELIM'];
$template_Preg [] = '/<?(=|php|)(.+?)?>/is';
$template_Preg [] = '/' . $_Left . '(else if|elseif) (.*?)' . $_Right . '/i';
$template_Preg [] = '/' . $_Left . 'for (.*?)' . $_Right . '/i';
$template_Preg [] = '/' . $_Left . 'while (.*?)' . $_Right . '/i';
$template_Preg [] = '/' . $_Left . '(loop|foreach) (.*?)' . $_Right . '/i';
$template_Preg [] = '/' . $_Left . 'if (.*?)' . $_Right . '/i';
$template_Preg [] = '/' . $_Left . 'else' . $_Right . '/i';
$template_Preg [] = '/' . $_Left . "(eval|_)( |[
])(.*?)" . $_Right . '/is';
$template_Preg [] = '/' . $_Left . '_e (.*?)' . $_Right . '/is';
$template_Preg [] = '/' . $_Left . '_p (.*?)' . $_Right . '/i';
$template_Preg [] = '/' . $_Left . '/(if|for|loop|foreach|eval|while)' . $_Right . '/i';
$template_Preg [] = '/' . $_Left . '((( *(++|--) *)*?(([_a-zA-Z][w]*(.*?))|$((w+)(([|()('|")?$*w*('|")?()|]))*((->)?$?(w*)((('|")?(.*?)('|")?)|))){0,})( *.?[^ .]*? *)*?){1,})' . $_Right . '/i';
$template_Preg [] = "/( | ){0,}(
){1,}";/";
$template_Preg [] = '/' . $_Left . '(#|*)(.*?)(#|*)' . $_Right . '/';
$template_Preg [] = '/' . $_Left . '%([a-zA-Z_-][a-zA-Z0-9_-]*)' . $_Right . '/';
$template_Replace [] = '<?\1\2?>';
$template_Replace [] = '<?php }else if (\2){ ?>';
$template_Replace [] = '<?php for (\1) { ?>';
$template_Replace [] = '<?php while (\1) { ?>';
$template_Replace [] = '<?php foreach ((array)\2) { $__i++; ?>';
$template_Replace [] = '<?php if (\1){ ?>';
$template_Replace [] = '<?php }else{ ?>';
$template_Replace [] = '<?php \3; ?>';
$template_Replace [] = '<?php echo \1; ?>';
$template_Replace [] = '<?php print_r(\1); ?>';
$template_Replace [] = '<?php } ?>';
$template_Replace [] = '<?php echo \1;?>';
$template_Replace [] = '';
$template_Replace [] = '';
$template_Replace [] = '<?php echo $this->lang_array['\1'];?>';
return preg_replace ( $template_Preg, $template_Replace, $template_Conver );
}
}
}
Gyb2b V1.01免费版可终身使用,是一款功能强大的B2B电子商务应用软件。该软件不仅更新和修改了V1.0相关功能,更是采用了目前互联网上最流行的LAMP组合(Linux+Apache+Mysql+PHP)开发完成,模板技术实现了界面与代码的有效分离,用户可以快速地在此基础上编译模板;提供B2B电子商务应用最常见的求购、供应、商品、公司库、行业资讯、商圈、资信认证、在线交易、交易评分、留言、搜
0
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号