Smarty模板学习笔记之Smarty简介
1、简介
Smarty是一个使用PHP写出来的模板PHP模板引擎,是目前业界最著名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。简单的讲,目的就是要使PHP程序员同前端分离,使PHP程序员改变程序的逻辑内容不会影响到前端的页面设计,前端重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。
2、那么smarty有什么优点呢?
a、速度:采用Smarty编写的程序可以获得最大速度的提高,这一点是相对于其它的模板引擎技术而言的。
b、编译型:采用Smarty编写的程序在运行时要编译成一个非模板技术的PHP文件,这个文件采用了PHP与HTML混合的方式,在下一次访问模板时将WEB请求直接转换到这个文件中,而不再进行模板重新编译(在源程序没有改动的情况下)
c、缓存技术:Smarty选用的一种缓存技术,它可以将用户最终看到的HTML文件缓存成一个静态的HTML页,当设定Smarty的cache属性为true时,在Smarty设定的cachetime期内将用户的WEB请求直接转换到这个静态的HTML文件中来,这相当于调用一个静态的HTML文件。
d、插件技术:Smarty可以自定义插件。插件实际就是一些自定义的函数。
e、模板中可以使用if/elseif/else/endif。在模板文件使用判断语句可以非常方便的对模板进行格式重排。
3、不过,在下面情况时使用smarty需留意
a、需要实时更新的内容。例如像股票显示,它需要经常对数据进行更新,这类型的程序使用smarty会使模板处理速度变慢。
b、小项目。小项目因为项目简单而美工与程序员兼于一人的项目,使用Smarty会在一定程度上丧失PHP开发迅速的优点。
(PS:不过为了整个项目的规范,请大家尝试去使用模板引擎。其实习惯了,开发速度会更加快,以上是没有用习惯模板引擎的开发者遇到的问题)
相关推荐
-
模板引擎smarty工作原理以及使用示例
模板引擎是用于把模板文件和数据内容合并在一起的程序,便于网站开发有利于代码分离和维护,了解一个模板最好知道其工作原理,以便于实现一通万通. 模板文件一般是HTML xml js等类型文件,如果不用模板引擎若要把数据显示在网页上,我们需要在php中输出HTML,而使用模板则只要把数据交给模板引擎程序即可,然后告诉它用哪个模板文件,自然就会把数据和页面结合以后返回或输出,模板至少有以下功能1.把数据提供给模板引擎的功能.2.指定模板的功能.3.输出结果的功能.一般来说为了方便程序员们使用模板引擎,开
-
Smarty变量调节器失效的解决办法
Smarty的变量调节器是个不错的东西,一直以来都用着顺手,可昨天使用变量调节器时发现不管用. 复制代码 代码如下: {$name | upper} 仔细看了手册,看了smarty加载路径,上上下下检查了将近一个小时也没有发现问题所在.即将要陷入无奈的困境时,把代码删除了重新写成 复制代码 代码如下: {$name|upper} 结果好了.原来是变量后要直接跟着竖线,函数名,中间不能有空格,否则变量调节器的功能将失效.闹了半天,原来就是一个空格引起的,太不值当了!!! 看来以后调smarty程序
-
smarty模板中拼接字符串的方法
PHP页面传到Smarty模板上的变量(这里用,在Smarty上创建两个变量代替) 复制代码 代码如下: {assign var="name" value='Richard.Lee'}{assign var="age" value='27'} 1.想要在Smarty模板的某个位置输出(Richard.Lee---27)拼接方法:{$name|cat:"---"|cat:$age}解释:将变量$name."---".$age 拼
-
smarty获得当前url的方法分享
http://{$smarty.server.SERVER_NAME}/{$smarty.server.REQUEST_URI} 注释: 复制代码 代码如下: {$smarty.server.SERVER_NAME}//表示:服务器名称{$smarty.server.REQUEST_URI}// 表示:请求的url 例如:http://www.jb51.net/sysaction/getUserInfo.php 复制代码 代码如下: {$smarty.server.SERVER_NAME} //
-
php之Smarty模板使用方法示例详解
本文详细剖析了smarty模板的使用方法,对于学习smarty的朋友有一定的参考价值.详情如下: 一.模板中的注释 每一个Smarty模板文件,都是通过Web前台语言(xhtml,css和javascript等)结合Smarty引擎的语法开发的. 用到的web前台开发的语言和原来的完全一样,注释也没有变化. Smarty注释语法是'左结束符变量值*'和'*右结束符变量值',在这两个定界符之间的内容都是注释内容,可以包含一行或多行,并且用户浏览网页查看原代码时不会看到注释,它只是模板内在的注释,以
-
Smarty局部缓存的几种方法简介
很多时候我们在用smarty时,并不希望缓存整个页面,例如天气.股票等这类即时更新的信息.那么我们可以让其不缓存,常见的实现有如下3种方法: 1.insert 法: Insert 函数类似于 inluce 函数,不同之处是 insert 所包含的内容不会被缓存,每次调用该模板都会重新执行该函数.比如说我们定义一个显示时间的函数: 复制代码 代码如下: function insert_get_current_time() {return date("H:i:s");} //然后在模板中:
-
php smarty模板引擎的6个小技巧
下面本文将以具体的例子一一分析: capture标签 capture的中文意思是抓取,它的作用是抓取模板输出的数据,当我们需要它的时候,调用它,以得到抓取数据的目的.如下例子: 复制代码 代码如下: {capture name="test"} <img src="testimg.jpg"> {/capture} <div class="image"> {$smarty.capture.test} </div>
-
sae使用smarty模板的方法
Smarty是非常流行的模板系统,它分离了业务和逻辑.执行速度快,在php网站中有广泛的运用. 不过在部署到sina app engine(sae)上时出现了问题,因为sae作为云计算平台式无法进行文件读写操作的,所以Smarty中输出的缓存文件就无法实现. 错误信息:"SAE_Fatal_error: Uncaught exception 'SmartyException' with message 'unable to write file ./web/templates_c/wrt4e95
-
ThinkPHP使用smarty模板引擎的方法
ThinkPHP支持多种php模板引擎,可以根据个人需要加以配置. 下面我们以Smarty模板引擎为例,给大家说说具体的操作流程! 首先去Smarty官网上下载一个Smarty.本站下载地址:http://www.jb51.net/codes/16086.html. 接下来解压压缩包,会有两个文件夹:demo和libs.打开libs文件夹,复制所有内容. 接下来,打开你网站根目录 下thinkphp的文件夹.里面有个vendor文件夹,这个文件夹是TP调用第三方类库用的,把刚才复制的东西全部粘贴
-
smarty简单分页的实现方法
本文实例讲述了smarty简单分页的实现方法,分享给大家供大家参考.具体实现方法如下: 以下是模板中的smarty代码,用smarty简单的代入相关的变量就行了,非常简单,但是在php代码中还要传入page这个参数.我觉得这样分挺好,非常简单.我越来越喜欢用smarty了. Php代码如下: 复制代码 代码如下: {if $pageCount > 1} {foreach item=i from=$pagerList} {if $pageNum eq $i} {$i}
-
smarty半小时快速上手入门教程
本文讲述了smarty快速上手入门的方法,可以让读者在半小时内快速掌握smarty的用法.分享给大家供大家参考.具体实现方法如下: 一.smarty的程序设计部分: 在smarty的模板设计部分我简单的把smarty在模板中的一些常用设置做了简单的介绍,这一节主要来介绍一下如何在smarty中开始我们程序设计.下载Smarty文件放到你们站点中. index.php代码如下: 复制代码 代码如下: <?php /** * * @version $Id: index.php * @package
随机推荐
- 使用vbs脚本定时删除N天前的文件
- Tomcat网站发布配置方案详细说明
- cmd命令行大全 dos命令 cmd命令整理
- jdk自带定时器使用方法详解
- 用PHP的超级变量$_POST获取HTML表单(HTML Form) 数据
- jsp按格式导出doc文件实例详解
- C语言 数据结构之连续存储数组的算法
- Android编程之桌面小部件AppWidgetProvider用法示例
- Android编程实现仿优酷旋转菜单效果(附demo源码)
- MySQL预编译功能详解
- MyEclipse8.6首次运行maven项目图标上没有小M的标识怎么解决
- 研究了一下div+css的高度自适应问题
- 对字符串进行HTML编码和解码的JavaScript函数
- Bootstrap每天必学之js插件
- jQuery实现鼠标滑过预览图片大图效果的方法
- sqlserver获取当前日期的最大时间值
- 用JS提交参数创建form表单在FireFox中遇到的问题
- vue使用微信JS-SDK实现分享功能
- layui 关闭open弹出框 刷新table表格页面的方法
- CentOS 7系统下SELinux阻止MongoDB启动的问题详解