Smarty模板重点汇总
Smarty模板重点回顾:
1、功能:前后端分离;
2、实现方法:通过使用Smarty的核心类来实现,利用display方法来读取模板文
件,用正则进行替换,替换完保存到临时文件,再将临时文件加载到当前页面显
示;
3、配置文件(入口文件):对Smarty类进行实例化,规定文件存放路径;
4、如果要在页面中使用Smarty模板,需要将配置文件引入到页面中;
5、浏览器要访问的页面是后台页面(.PHP),最终显示在浏览器中的是模板页
面(.html或.tpl)
6、模板页面中的文件路径都是相对于后台页面,如果不使用相对路径,可以使
用绝对路径;
7、模板里显示的变量:
(1)变量要写在Smarty标记中间,变量名以$开头;
(2)支持所有类型的数据,包括数组(关联数组)、对象
8、关联数组在模板显示的时候,除了可以使用PHP语法,还可以使用点方法进行
调用
9、模板里面读取配置文件
(1)将配置文件加载到当前页面
<{config_load file='test.conf'}>
(2)读取配置文件中的内容
<{#color#}>
(3)如果配置文件中分了块,读取某一块的配置的方法
<{config_load file='test.conf' section='块名'}>
10、Smarty保留变量
$smarty.const 读取常量 例如:CSS,JS,图片的存放路口
11、变量调节器
关键字:modifier
(1)系统自带的变量调节器:转大写[upper] 转小写[lower] 首字母大写
[capitalize] 截取字符串[truncate] 拼接字符串[cat] 替换[replace]
调用方法:<{$变量名|调节器名}>
(2)自定义变量调节器:
变量调节器存放目录下新建文件:modifier.调节器名称.php
在该文件里面新建一个方法:function smarty_modifier_调节器名($str){}
$str参数代表调用该调节器的变量
最后该方法要有一个返回值
12、函数
关键字:function普通函数,block块函数
(1)系统自带的函数:追加[append] 赋值[assign] 继承[extends] 循环[for]
遍历[foreach],[foreachelse]
调用方法:
<{foreach $shuzu as $v或$k}>
<{$v@index}> 从0开始的索引
<{$v@first}> 代表是第一个循环的
<{$v@last}> 代表是最后一个循环的
<{/foreach}>
条件[if][elseif][else]
调用方法:
<{if 条件}>
满足条件输出内容
<{else}>
不满足条件输出内容
<{/if}>
<{if 条件1}>
满足条件输出内容
<{elseif 条件2}>
不满足条件1满足条件2执行
<{/if}>
比较的时候,有备用词可以使用
(2)自定义函数
找到存放函数插件的文件夹在里面新建文件:function.函数名.php (block.函
数名.php)
在该文件里面新建一个方法:function smarty_function_函数名($args){}
function smarty_block_函数名($args,$nr,$smarty,$bs){}
参数$args:调用该函数传入的属性关联参数
参数$nr:block块之间所夹的内容
参数$smarty:对象
参数$bs:是否是第一次调用(开始标记里面调用)
该方法最终有返回值
13、模板继承
extends block
父模板:一般用来放网页的头和尾
需要预留一定的区域来让子页面修改替换
使用<{block name='neirong'}><{/block}>
一般来说,父模板里面至少预留两块区域,其中一块是在head里面 另一块是在
body里面
子页面:一般继承父模板所有,存放该页面需要实现的功能的代码
<{extends file='文件名'}>
完善替换父模板中预留的区域:
<{block name='模块名'}> —— 开头
中间填写数据
<{/block}> —— 结尾
14、缓存:
做法:
(1)定义一个缓存文件存放的路径 $filename="文件路径"
(2)判断缓存文件是否存在或者是否过期 file_exists($filename)
(3)如果文件不存在或过期:
开启内存缓存 ob_start();
取内存中的内容 ob_get_contents();
将内容存放到缓存文件中 file_put_contents();
关闭内存缓存 ob_flush();
(4)如果文件存在或没有过期:
将缓存文件引入当前页面 include();
Smarty模板重点汇总的更多相关文章
- Smarty模板技术学习(二)
本文主要包括以下内容 公共文件引入与继承 内容捕捉 变量调剂器 缓存 Smarty过滤器 数据对象.注册对象 与已有项目结合 公共文件引入与继承 可以把许多模板页面都用到的公共页面放到单独文件里边,通 ...
- smarty详细使用教程(韩顺平smarty模板技术笔记)
MVC是一种开发模式,强调数据的输入.处理.显示是强制分离的 Smarty使用教程1.如何配置我们的smarty解压后把libs文件夹放在网站第一级目录下,然后创建两个文件夹templates 存放模 ...
- php教程之Smarty模板用法实例
分享下php之Smarty模板的使用方法. 剖析了smarty模板的使用方法,对于学习smarty的朋友有一定的参考价值. 详情如下: 一.模板中的注释每一个Smarty模板文件,都是通过Web前台语 ...
- PHP Smarty模板的安装
最近开发中用到了PHP中smarty模板..作为一个长久以来的前端,开始学习PHP模板..下面将安装教程分享给大家.. 1. 下载Smarty最新版: http://www.smarty.NET/do ...
- ThinkPHP+Smarty模板中截取包含中英文混合的字符串乱码的解决方案
好几天没写博客了,其实有好多需要总结的,因为最近一直在忙着做项目,但是困惑了几天的Smarty模板中截取包含中英文混合的字符串乱码的问题,终于解决了,所以记录下来,需要的朋友看一下: 出现乱码的原因: ...
- 12月15日下午Smarty模板函数
1.{$var=...} 这是{assign}函数的简写版,你可以直接赋值给模版,也可以为数组元素赋值. <{$a = 10}><!--赋值语句--> <{$a}> ...
- 12月15日smarty模板基本语法
smarty基本语法: 1.注释:<{* this is a comment *}>,注意左右分隔符的写法,要和自己定义的一致. <{* I am a Smarty comment, ...
- SMARTY模板中如何使用get,post,request,cookies,session,server变量
{$smarty}保留变量不需要从PHP脚本中分配,是可以在模板中直接访问的数组类型变量,通常被用于访问一些特殊的模板变量.例如,直接在模板中访问页面请求变量.获取访问模板时的时间戳.直接访问PHP中 ...
- ThinkPHP3.2.3整合smarty模板(二)
前言:继ThinkPHP3.2.3整合smarty模板(一)之后,继续来探讨一下tp框架整合smarty模板,看到有人在群上问到怎么使用自定义的常量,今天就具体来谈谈: 一.开发一个项目,必不可少会用 ...
随机推荐
- 使用Nginx的proxy_cache缓存功能取代Squid
Nginx从0.7.48版本开始,支持了类似Squid的缓存功能.这个缓存是把URL及相关组合当作Key,用md5编码哈希后保存在硬盘上,所以它可以支持任意URL链接,同时也支持404/301/302 ...
- Oracle更新时间字段
update field set BEGINDATE=to_date('2015-05-03 10:30:20','yyyy-mm-dd hh24:mi:ss') where NOO='01'
- (4.5.4)Android測试TestCase单元(Unit test)測试和instrumentationCase单元測试
Android单元和instrumentation单元測试 Developing Android unit and instrumentation tests Android的单元測试是基于JUnit ...
- Spark源码分析之八:Task运行(二)
在<Spark源码分析之七:Task运行(一)>一文中,我们详细叙述了Task运行的整体流程,最终Task被传输到Executor上,启动一个对应的TaskRunner线程,并且在线程池中 ...
- window+Jira+SQL Server
window下Jira+SQL Server部署+汉化+破解(亲测2018.5) 网上很多都是jira+mysql部署的文章,由于我现在有需求要用SQL Server数据库,因此就动手试了一下,参考网 ...
- Tomcat 7.0 servlet @WebServlet
在使用tomcat7.0+eclipse j2ee时,新建Dynamic Web Project时, 会让选择是否生成web.xml.无论选择与否,此时新建一个servlet, 可以不在web.xml ...
- 【SQLServer2008】之改变主键当为null时也不会报错,可以入数据库。
在SqlServer红框中设置主键,右键会有添加主键选项,并且设置不能为null. 当我们插入主键数据如果为null时,会插不进去,这时候我们需要修改一下,如下图: “标识规范”中选择“是”,就可以了 ...
- Linux下Kafka单机安装配置方法
Kafka是一个分布式的.可分区的.可复制的消息系统.它提供了普通消息系统的功能,但具有自己独特的设计.这个独特的设计是什么样的呢? 首先让我们看几个基本的消息系统术语: •Kafka将消息以topi ...
- linux 上操作常用的命苦与出错的地方
帮助信息 ./configure -help|grep mysql 出错提示安装libxml2 tar -zxvf libxml2xxxx.tar cd libxml2xxx ./configure ...
- eclipse tomcat maven
jdk jre eclipse 略过 下载maven和tomcat 上apache官网下载maven:http://maven.apache.org/download.cgi. 上apache官网下载 ...