1. 1、本文档共82页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Smarty讲解

Smarty模板引擎 一.模板引擎初探 1.什么是模板引擎 从中级项目出发,看一下。 好的地方, 对于我们php开发人员来讲,比较简单。 不好的地方,如果有分工开发的场景,就没有办法做到明确的分工。 2.为什么需要模板引擎 典型的开发场景 只要能把php和html分开的技术,都可以称之为模板技术。 注意mvc和模板技术的区别 MVC:它是针对整个项目而言的。 模板技术:仅针对视图层而言的。 3.常见的模板引擎有哪些? Smarty(重点学习的) Template FXL tempate Dwoo Smarty是功能强大最强大,使用最多的。 Php开发人员必备的。 二.Smarty快速入门 1.Smarty介绍 smarty是什么? Smarty是一个PHP的模板引擎,提供让程序逻辑与页面显示(HTML/CSS)代码分离的功能。 也就是PHP代码是程序逻辑,与页面显示分开。 smarty特点 速度:使用smarty可以获得最大速度的提高(相对于其它模板引擎技术)。 编译型:在下一次访问模板时直接访问编译文件,而不再进行模板重新编译。 缓存技术:可以将用户最终看到的HTML文件缓存成一个静态的HTML页。 插件技术:smarty可以自定义插件。插件实际就是一些自定义的函数。 强大的表现逻辑:模板中可以使用if/elseif/else/endif、foreach等。 2.获取 Smarty官网:/download smarty 2.x 兼容PHP 4 的写法 smarty 3.x 基于PHP 5,完全面向对象 3.安装 安装,其实就是解压。 目录结构说明: Smarty目录结构 4.使用 可以参考手册/demo。 (1).创建相应的文件夹 目前,只需要创建两个目录即可,如下: (2).编写php文件 (3).编写模板文件 在templates目录下创建一个index.html文件,并编写代码如下: 访问index.php,结果如下: 整个过程比较简单,一是在php文件中用到,二是模板文件中用到。 查看编译文件,如下: 它实际上是一个php和html混编的一个php文件,只不过它是由smarty模板引擎生成的。 三.Smarty基本语法 首先,站在前端开发人员的角度使用smarty。包括定界符、注释、变量和函数(内置函数、变量修饰器和函数插件)。 1.定界符 和html标签类似,p/p 在smarty中,默认的定界符是{}, 注意: 任何在定界符之外的内容,都是静态的,是不会被解析的(包括php代码) { 和 $ 中间不能有任何空格,否则将不会解析。(右边则是可以的) 如果在页面中有css和js,会怎么样呢? 默认的定界符是可以修改的 如何解决{的冲突 a. 所有以{ 开头的地方,加空一格 b. 将css和js以外部的方式引入 c. 使用内置函数 literal d. 更改定界符 修改之后,应该这么使用: 实际上,修改定界符比较麻烦,最好的做法,使用默认的,将css和js以外部的方式来引入,如果在页面中需要单独书写css和js,用literal标签包含即可。 2.注释 格式:左定界符* 内容 *右定界符 如 {* 内容 *} 变量---比较重要 在模板中可以使用的变量有哪些?通常有三种来源: 在php中通过assign方法分配过来的。(90%以上) 保留变量 配置变量 (1).通过assign分配过来的变量 直接使用assign方法分配即可,写法如下: $smarty-assign(名,值); 重点是,分配的变量有哪些表现形式? 回顾:php中,有哪些数据类型?422阵型 4种标量类型,整型、浮点型、字符串、布尔 2种复合类型,数组和对象 2种特殊类型,资源和NULL 标量就是单个值的意思,一个变量只能表示一个值。 资源类型和NULL根本就不需要。 对象是可以使用的,但是一般不建议分配。 结论:就是标量类型和数组。5种,实际上就是两种,标量和数组。 标量比较简单,直接输出即可 结果如下: 结果如下: 注意,布尔类型,在echo的时候,echo后面的参数一定是字符串,如果不是,会自动隐式转换。True转成1,false转成空。 数组是重点 然后在模板页面中,输出 结果如下: 实际上,不管是关联数组还是索引数组,其实处理方式是一样的。都可以使用[]和.的方式来访问。 [思考]:关联数组和索引数组有何区别? 实际上没有什么区别。 索引数组只不过是关联数组的一种特例,特殊之处就在于下标是连续的数字。 对象也是可以分配的,但一

文档评论(0)

33ggoup + 关注
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档