PHP-关于模板的原理和解析

此内容用作笔记,以备日后查看,此内容为学习李炎恢课程而来,并非自己所创,如有问题请私信~

将PHP代码和静态HTML代码进行分离,使代码的可读性和维护性得到显著提高。

使用模板引擎:

我们所说的模板是Web模板,是主要由HTML标记组成的语言来编写的页面,但也有如何表示包含动态生成内容的方式(解析标签)。模板引擎是一种软件库,允许我们从模板生成HTML代码,并指定要包含的动态内容。

模板引擎的特点:

1.鼓励分离:让更个系统的可读性和维护性得到提高。

2.促进分工:使得程序员和美工去专心处理自己的设计。

3.比PHP更容易解析:编译文件和缓存文件加载更快、占资源更少。

4.增加安全性:可限制模板设计师进行不安全的操作的能力避免误删误访问等。

模板处理的流程图

创建模板:

1、创建初始模板所需要的文件夹和文件。

a) index.php主文件,用于编写业务逻辑。

b) template.inc.php模板初始化文件,用于初始模版信息。

c) templates目录存放所有的模板文件。

d) templates_c目录存放所有编译文件。

e) cache目录存放所有缓存文件。

f) includes目录存放所有的类文件。

g) config目录存放模板系统变量配置文件。

以下是源码:

主文件 index.php

php

//index.php

//设置编码为UTF-8

header('Content-Type:text/html;Charset=utf-8');

//网站根目录

define('ROOT_PATH', dirname(__FILE__));

//存放模板文件夹

define('TPL_DIR', ROOT_PATH.'/templates/');

//编译文件夹

define('TPL_C_DIR', ROOT_PATH.'/templates_c/');

//缓存文件夹

define('CACHE_DIR', ROOT_PATH.'/cache/');

//定义缓存状态

define('IS_CACHE',true);

//设置缓存状态开关

IS_CACHE ? ob_start() : null;

include ROOT_PATH.'/includes/Templates.class.php';

$_name = '方块李';$array = array(1,2,3,4,5,6);$_tpl = newTemplates();$_tpl->assign('name', $_name);$_tpl->assign('a', 5>4);$_tpl->assign('array', $array);//显示

$_tpl->display('index.tpl');?>

模板文件 HTML

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

php 关于模板的原理和解析,PHP-关于模板的原理和解析_PHP教程相关推荐

  1. element 往node里面增加属性值_【Vue原理】Compile - 源码版 之 Parse 属性解析

    写文章不容易,点个赞呗兄弟 专注 Vue 源码分享,文章分为白话版和 源码版,白话版助于理解工作原理,源码版助于了解内部详情,让我们一起学习吧 研究基于 Vue版本 [2.5.17] 如果你觉得排版难 ...

  2. 前端文摘:深入解析浏览器的幕后工作原理(转)

    前端文摘:深入解析浏览器的幕后工作原理 https://www.cnblogs.com/lhb25/p/how-browsers-work.html 您可能感兴趣的相关文章 10大流行 Metro U ...

  3. 深入解析浏览器的幕后工作原理

    前端文摘:深入解析浏览器的幕后工作原理(转载出处) 您可能感兴趣的相关文章 10大流行 Metro UI Bootstrap 主题和模板 精选12款优秀 jQuery Ajax 分页插件和教程 10大 ...

  4. 各类木材强度_凯狄解析各类抽芯铆钉的工作原理

    开口型抽芯铆钉:铆钉铆接后,钉芯在钉芯头与钉芯杆交接处或其附近断裂,钉芯头和一小部分钉芯杆留在铆钉体中.其抗剪强度类似于空心铆钉连接. 封闭型抽芯铆钉:铆钉铆接后仍保持封闭的铆钉体.在铆钉体与被连接件 ...

  5. 【Vue.js源码解析 三】-- 模板编译和组件化

    前言 笔记来源:拉勾教育 大前端高薪训练营 阅读建议:建议通过左侧导航栏进行阅读 模板编译 模板编译的主要目的是将模板 (template) 转换为渲染函数 (render) <div> ...

  6. php正则循环,PHP正则解析多重循环模板示例

    本文实例讲述了PHP正则解析多重循环模板.分享给大家供大家参考,具体如下: $str = "客户您好,为您推荐以下项目:(crm{项目2:项目名称} (crm{项目3:项目名称}crm) c ...

  7. 深入解析Mysql 主从同步延迟原理及解决方案

    深入解析Mysql 主从同步延迟原理及解决方案 参考文章: (1)深入解析Mysql 主从同步延迟原理及解决方案 (2)https://www.cnblogs.com/fengff/p/1101170 ...

  8. 解析ChatGPT背后的工作原理

    点击上方"芋道源码",选择"设为星标" 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | ...

  9. tp部署了admin.php如何显示页面,深度解析ThinkPHP5设置模板路径

    本篇文章介绍了thinkphp设置前端模板路径和后台模板路径的方法,具有一定的参考价值,希望对学习thinkPHP的朋友有帮助! 深度解析ThinkPHP5设置模板路径 默认的模板路径在模块/view ...

  10. linux运维笔记:DNS解析IP地址的过程(dns解析的原理 )

    linux运维笔记:DNS解析IP地址的过程(dns解析的原理 ) 1.首先:说一下dns解析的流程,大家都知道,计算机之间只能通过ip相互通信,因为ip不好记,于是才使用dns服务器把域名解析为相应 ...

最新文章

  1. php 支付宝手机端_PHP 手机支付宝接口
  2. 简单工厂模式、工厂方法模式、抽象工厂模式 之间的对比
  3. 强制关机对电脑的影响_笔记本电脑需要每天关机吗?长期开机对电脑有影响么?...
  4. SAP License:做顾问要有一颗平常心
  5. 如何禁用Web表单字段/输入标签上的浏览器自动完成功能?
  6. 高级装饰器---验证用户登录
  7. C/C++笔记(01):容易出错的几个库函数
  8. 为什么Laravel会成为最成功的PHP框架
  9. 软件网站安全性的设计与检测与解决方案
  10. 【Registration of 3D Point Clouds with Low Overlap】
  11. Manjaro linux驱动HP1020 plus打印机折腾记
  12. 考研数据结构之栈(2.5)——练习题之求解二次方根A的迭代函数,写出相应的递归算法和非递归算法(C表示)
  13. Linux Ubuntu16.04 Python3.5.2 Cuda10.1 TITAN XP安装fastai v1
  14. python日历模块_Python calendar日历模块的说明
  15. Android 9.0默认支持的语言
  16. JAVA常用类之Arrays工具类
  17. confluence 制作流程图_软件需求分析流程图绘制方法
  18. Dingtalk 发送消息
  19. 《 Mind Map Book 思维导图中文版》读书笔记
  20. sofasofa——交通事故理赔审核

热门文章

  1. 实现内外网互通-概述
  2. 插拔usb设备计算机管理无反应,usb插上电脑没反应,详细教您浏览修复usb方法
  3. hive面试题总结(大数据面试)
  4. c语言 最大子段和,C语言程序设计100例之(13):最大子段和
  5. 去除pdf文件的许可口令(密码)
  6. 连续变量的描述统计与SPSS实现
  7. 玩王者荣耀用不好英雄?两阶段算法帮你精准推荐精彩视频
  8. 功能测试基础之业务流程测试
  9. 荣耀6plus安装linux程序,华为 荣耀6Plus驱动程序下载和安装
  10. 3dmax如何快速查找丢失贴图,并根据贴图快速找到对应物体