相信很多phper都有接触过模板,模板以其特定的解析语法是如何实现的呢?本文通过自己写一个简单的模板解析类,来让大家清楚地认识模板的原理。
mini类
class mini {
public $template_dir = ''; // 模板文件存放的位置
public $compile_dir = ''; // 模板文件编译后存放的位置
public $array = array ();
public function assign($key, $value) {
$this->array [$key] = $value;
}
/*
* 调动compile来编译模板,并自动引入;
*/
public function display($template) {
$comp = $this->compile ( $template );
include ($comp);
}
/*
* 传一个参数,读取那个html模板 流程:把模板读取过来,编译成php
*/
public function compile($template) {
// $template是一个html文件
$temp = $this->template_dir . '/' . $template;
$source = file_get_contents ( $temp );
// 再把编译后的内容保存成.php文件
$comp = $this->compile_dir . '/' . $template . '.php';
// 判断模板是否已经存在,或者修改;
if (file_exists ( $comp ) && filemtime ( $temp ) < filemtime ( $comp )) {
return $comp;
}
$source = str_replace ( '{$', '<?php echo $this->array[\'', $source );
$source = str_replace ( '}', '\'];?>', $source );
// echo $source;
file_put_contents ( $comp, $source );
return $comp;
}
}相关推荐:
海洋影视管理系统(seacms,海洋cms)是一套专为不同需求的站长而设计的视频点播系统,灵活,方便,人性化设计简单易用是最大的特色,是快速架设视频网站首选,只需5分钟即可建立一个海量的视频讯息的行业网站。 海洋cms采用PHP+MYSQL架构,原生PHP代码带来卓越的访问速度和负载能力免去您的后顾之优。海洋cms支持一键转换原max的模板和数据,实现网站无缝迁移到新平台。众多人性化功能设计,超
116
立即学习“PHP免费学习笔记(深入)”;
以上就是PHP从自己写个模板类来理解的实现原理的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号