开发自己的模板引擎

自定义模板引擎类

MyTpl.class.php

复制代码
 1 <?php
 2 class MyTpl
 3 {
 4     private $tpl_vars = array();
 5     //分配
 6     public function assign($key,$value){
 7         $this->tpl_vars[$key] = $value;
 8     }
 9     public function display($tpl){
10         $contents = file_get_contents($tpl);
11         foreach ($this->tpl_vars as $k => $v){
12         //替换 将{$name} 替换成真实的数据
13         $contents = str_replace('{$'."$k".'}',"$v", $contents);
14         $compile = './templates_c/'.md5('show.html') . '.php';
15         file_put_contents($compile, $contents);
16         require $compile;
17         }
18     }
19 }
20 $tpl = new MyTpl;
21 $tpl-> assign('name','张四');
22 $tpl-> display('./template/show.html');
复制代码

 

自定义视图

template/show.html

复制代码
 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta charset="UTF-8">
 5 <title>Insert title here</title>
 6 </head>
 7 <body>
 8     {$name}
 9 </body>
10 </html>
复制代码

 

 

posted @   薛尧笔记  阅读(483)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
薛尧的博客
点击右上角即可分享
微信分享提示