php css免费模板,PHP模板解析入门

模板引擎的特点:

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

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

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

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

一个PHP对应一个模板文件,经过调用模板类并且经过模板解析类之后,生成编译过后的php编译文件,为了加快访问速度,并且生成纯静态的HTML文件,作为缓存文件。

简易目录:

1.cache文件夹存放静态HTML文件,加快访问速度

2.config文件夹存放系统变量的XML文件

3.includes 存放模板解析类库

-------------Parser.class.php 模板文件解析类  用于解析tpl文件,将其解析成php文件

------------Templates.class.php    模板类      负责提供给index.php调用传递数据和调用模板文件

4.templates文件夹     存放tpl文件

5.Templates文件夹 存放解析过后的tpl文件,为PHP文件

6.Index.php 调用入口文件

7.template.inc.php     初始化模板文件

8.Test.php 测试文件类

一、定义初始化变量

template.inc.php

二。入口文件index.php

三、Templates.class.php

当实例化Template对象的时候,会先判断各个目录是否存在

当index.php调用$_tpl->assign()方法的时候,调用Template对象中的assign方法,在Template中有一个私有属性$_var为数组类,用于存放assign中的参数

如果变量不存在,或者变量为空的话,提示设置模板变量,否则,以变量名为数组索引,变量值为相对索引的值,存放入$_var私有变量中。

如果出现相同变量名就会出现因为索引相同,出现覆盖的情况。

这个时候掉用assign()方法,assign()方法改写为

在网页端打开访问

当调用Template类中display()方法的时候,传递进来一个模板文件名称

$_tpl->display(‘index.tpl’);

1.接收到tpl模板名称,定位到该模板文件路径,并且检测模板文件是否存在。

2.并且同时声明两个变量用于存放模板编译文件路径和纯静态HTML缓存文件路径

3.模板文件和编译文件和静态文件规则是这样:

如果编译文件和缓存文件都不存在,直接载入编译文件,并且生成静态缓存文件

当编译文件不存在或者模板文件被修改的时候,重新生成编译文件,并且生成静态缓存文件

当第二次访问相同页面,并且编译文件和缓存文件同时存在,并且缓存文件的修改时间大于编译文件的时候,直接访问静态缓存文件

知识点:file_put_contents() 函数把一个字符串写入文件中。

缓存机制:推荐)

filemtime() 函数返回文件内容上次的修改时间。

fileatime() 函数返回指定文件的上次访问时间。

当第一次或者模板文件发生改变的时候,重新解析模板文件,并且将其解析

1.引入模板解析类,并且实例化模板解析类,再将模板文件传入给模板解析类作为初始化参数,构造函数获取到模板文件类型,赋值给模板解析类的私有属性$_tpl

2.当在Template中调用Parser模板解析类中的compile()方法的时候,将编译文件名传递进去。

3.将模板文件放入编译文件之前,先解析tpl中的所有模板标签

已解析if语句为例:

流程是先查找模板中是否存在{if $X}形式的模板标签,如果存在就查找{/if}

如果{/if}存在的情况在区分是否有else,然后通过字符串替换,将其变成PHP形式的输出

知识点:

preg_match() 函数用于进行正则表达式匹配,成功返回 1 ,否则返回 0 。

int preg_match( string pattern, string subject [, array matches ] )

pattern

正则表达式

subject

需要匹配检索的对象

matches

可选,存储匹配结果的数组, $matches[0] 将包含与整个模式匹配的文本,$matches[1] 将包含与第一个捕获的括号中的子模式所匹配的文本,以此类推

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
以下是一个简单的免费小型公司首页HTML+CSS模板示例: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Company Name - Homepage</title> <link rel="stylesheet" href="style.css"> </head> <body> <header> <div class="logo"> <h1>Company Name</h1> </div> <nav> <ul> <li><a href="#">Home</a></li> <li><a href="#">About</a></li> <li><a href="#">Services</a></li> <li><a href="#">Contact</a></li> </ul> </nav> </header> <main> <section class="banner"> <h2>Welcome to Company Name</h2> <p>We provide the best services in the industry</p> <a href="#" class="btn">Learn More</a> </section> <section class="services"> <h3>Our Services</h3> <ul> <li>Service 1</li> <li>Service 2</li> <li>Service 3</li> </ul> </section> <section class="about"> <h3>About Us</h3> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed vestibulum eget arcu eget bibendum. Nulla facilisi. Aenean euismod, ex eu ultrices lacinia, velit turpis iaculis.</p> </section> </main> <footer> <p>© 2021 Company Name. All Rights Reserved.</p> </footer> </body> </html> ``` 以下是示例CSS代码: ```css /* General styles */ body { margin: 0; padding: 0; font-family: Arial, sans-serif; } ul { list-style-type: none; margin: 0; padding: 0; } a { color: #333; text-decoration: none; } .btn { display: inline-block; padding: 10px 20px; background-color: #333; color: #fff; border: none; border-radius: 5px; } /* Header styles */ header { background-color: #eee; padding: 10px; display: flex; justify-content: space-between; align-items: center; } .logo h1 { margin: 0; } nav ul { display: flex; } nav ul li { margin-right: 20px; } /* Banner styles */ .banner { background-image: url('banner.jpg'); background-size: cover; background-position: center; height: 400px; display: flex; flex-direction: column; justify-content: center; align-items: center; color: #fff; text-align: center; } .banner h2 { font-size: 3rem; margin: 0; } .banner p { font-size: 1.5rem; margin: 20px 0; } /* Services styles */ .services { background-color: #f7f7f7; padding: 50px; text-align: center; } .services h3 { margin-top: 0; } .services ul { display: flex; flex-wrap: wrap; justify-content: center; } .services li { margin: 20px; padding: 20px; background-color: #fff; box-shadow: 0 0 5px rgba(0,0,0,0.1); border-radius: 5px; } /* About styles */ .about { padding: 50px; text-align: center; } .about h3 { margin-top: 0; } ``` 你可以根据自己的需求进行修改和定制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值