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模板,看到有人在群上问到怎么使用自定义的常量,今天就具体来谈谈: 一.开发一个项目,必不可少会用 ...
随机推荐
- Hive命令详解
http://blog.itpub.net/22778222/viewspace-1119892/ 官方文档翻译 http://blog.csdn.net/hguisu/article/detail ...
- UML--组件图,部署图
组件图用于实现代码之间的物理结构,详细来说,就是实现代码交互.通过接口,将不同的软件,程序连接在一起. [理解] 1.组件的定义相当广泛,包含:源码,子系统,动态链接库,Activex控件. 2.组件 ...
- HBase——完全分布
实际上,在真实环境中你需要使用完全分布配置完整测试HBase.在一个分布式配置中,集群有多个节点,每个节点运行一个或多个HBase守护进程.其中包括主Master和备份Master实例,多个Zooke ...
- easy ui 自己主动生成accordion不能自适应父容器问题
用easy-ui的accordion,用json自己主动生成时,不能自适应父容器.代码例如以下: (document).ready(function(){ $.ajax({ ...
- Java编码辅助工具:Lombok —— 避免重复臃肿的代码,提高效率
在项目开发过程中,经常会涉及到一些调整很少但又必不可少的环节,比如实体类的Getter/Setter方法,ToString方法等.这时可以使用Lombok来避免这种重复的操作,减少非核心代码的臃肿,提 ...
- Zabbix-20160817-高危SQL注入漏洞
漏洞概述: zabbix是一个开源的企业级性能监控解决方案.近日,zabbix的jsrpc的profileIdx2参数存在insert方式的SQL注入漏洞,攻击者无需授权登陆即可登陆zabbix管理系 ...
- 有一个投篮游戏。球场有p个篮筐,编号为0,1...,p-1。每个篮筐下有个袋子,每个袋子最多装一个篮球。有n个篮球,每个球编号xi 。规则是将数字为xi 的篮球投到xi 除p的余数为编号的袋里。若袋里已有篮球则球弹出游戏结束输出i,否则重复至所有球都投完。输出-1。问游戏最终的输出是什么?
// ConsoleApplication5.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<vector> ...
- C++常用强制类型转换
1.static_cast 最常用的类型转换符,在正常状况下的类型转换,如把int转换成float,如: int i; float f; f=(float)i; 或者 f=static_cast(i) ...
- easyUI中 datagrid 格式化日期
$('#List').datagrid({ url: '@Url.Action("GetList")', width:SetGridWidthSub(10), methord: ' ...
- Oracle -- Create User
CREATE USER hibernate IDENTIFIED BY "123" DEFAULT TABLESPACE "HIBERNATE" TEMPORA ...