为了账号安全,请及时绑定邮箱和手机立即绑定

自定义简单的PHP模版引擎

标签:
PHP Html/CSS

定义文件:

    1. 创建目录文件tpl

    2. 创建模版处理文件tpl/Template.php

    3. 显示处理页面 tpl/index.php

    4. 创建模版文件 tpl/index.html

    5. 编译目录文件 tpl/compile


tpl/Template.php源代码

<?php
class Template {
 
    // 模版中的变量
    protected $tplVals = array();
 
    // 编译文件路径
    protected $compileFile = './compile/';
 
    // 编译文件扩展名
    private $compileExtendName = '.php';
 
    // 模版文件扩展名
    private $tplExtendName = '.html';
 
    public function __construct(){}
 
    /**
     * 替换模版文件中的变量
     * @param  array $data 模版文件的内容
     * @return  string $data 替换模版文件的内容
     */
    private function replaceTplVar($data){
        foreach($this->tplVals as $k=>$v) {
            $data = str_replace('{$'.$k.'}', $v, $data);
        }
        return $data;
    }
 
    /**
     * 显示模版
     * @param  unkown $tpl
     */
    public function display($tpl) {
        // 获取模版内容
        $content = file_get_contents($tpl.$this->tplExtendName);
         
        // 替换模版中的变量
        $content = $this->replaceTplVar($content);
 
 
        // 编译后的文件
        $compileFile = $this->compileFile.md5($tpl).$this->compileExtendName;
         
        // 给编译后的文件添加内容
        file_put_contents($compileFile, $content);
         
        // 引入编译文件
        require_once $compileFile;
         
    }
 
 
    /**
     * 模版变量绑定
     * @param  string $name  模版变量名
     * @param  string $value 模版变量值
     * @return null
     */
    public function assign($name, $value) {
        $this->tplVals[$name] = $value;
    }
}


tpl/index.php源代码

<?php
require_once './template.php';
 
$tpl = new Template();
$tpl->assign('title','自定义smart有模版引擎');
$tpl->assign('content','这是模本内容');
$tpl->display('index');

 tpl/index.html源代码

<!doctype html>
<html>
<head>
<title>欢迎大家来零壹码学习自定义模版引擎</title>
<meta charset="utf-8" />   
</head>
<body>
    <h1>{$title}</h1>
    <p>{$content}</p>
</body>
</html>

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消