php 自己写 模板,PHP从自己写个模板类来理解的实现原理

相信很多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;

}

}

相关推荐:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值