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模板,看到有人在群上问到怎么使用自定义的常量,今天就具体来谈谈: 一.开发一个项目,必不可少会用 ...
随机推荐
- 【SharePoint】SharePoint 2013 使用PreSaveAction自定义客户端验证
使用PreSaveAction函数实现客户端自定义验证. 例:[项目编号]为空时,必须填写[责任者]项.(其中[项目编号]为单行文本框,[责任者]为用户/组选择框.) function PreSave ...
- JDK5新特性之线程同步工具类(三)
一. Semaphore Semaphore能够控制同一时候訪问资源的线程个数, 比如: 实现一个文件同意的并发訪问数. Semaphore实现的功能就类似厕全部5个坑, 增加有十个人要上厕所, 那么 ...
- TCP/IP详解 卷一(第四、五章 ARP、RARP)
数据链路如 以太网都有自己的寻址机制(MAC)地址,而IP层使用的是IP地址. 当一台主机把以太网数据发送定位于同一局域网上的另一台主机时,是根据MAC地址来确定目的接口的.设备驱动程序从不检查IP数 ...
- shell函数传递带空格的参数
shell中的参数以空格为分割符,经常会碰到需要传递带空格的参数,例如传递带空格的文件名. 方法很简单:给参数加双引号. 但是实际效果要看你的函数内容,一种可能的情况是: 其实你真的传递进去了带空格的 ...
- ThinkPHP中的模型命名
当我们创建一个UserModel类的时候,其实已经遵循了系统的约定.ThinkPHP要求数据库的表名和模型类的命名遵循一定的规范,首先数据库的表名和字段全部采用小写形式,模型类的命名规则是除去表前缀的 ...
- cmake学习之-configure_file
一.系统版本 cmake version: 3.5.2 系统版本: Ubuntun 16.04 cmake docment: 3.14.4 最后更新: 2019-05-30 二.指令说明 config ...
- Java中的Enum的继承
public interface Icolor{ int apply(int x,int y); } public enum color implements Icolor{ plus("+ ...
- rtems 4.11 工具链
4年前,曾经把rtems4.10移植到atmel 9263上,要不是当时移植的git仓库还在的话,真是不相信自己居然还干过这事.所以这次再捡起的时候,要记录一下.还是从编译器开始. 首先打开 http ...
- 已知某公司总人数为W,平均年龄为Y岁(每年3月末计算,同时每年3月初入职新人),假设每年离职率为x,x>0&&x<1,每年保持所有员工总数不变进行招聘,新员工平均年龄21岁。 从今年3月末开始,请实现一个算法,可以计算出第N年后公司员工的平均年龄。(最后结果向上取整)。
// ConsoleApplication12.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" // ConsoleApplication1 ...
- JavaScript读书笔记(5)-Object Date
1.Object类型 (1)创建Object实例 第一种方式:new操作符后跟Object构造函数 var person=new Object(); person.name=”Nicholas”; p ...