转 smarty学习笔记电子版整理

使用smarty模版,smarty类的文件在libs目录下,将libs目录拷贝到工作区当前目录下,建立templates和templates_c文件夹,也可以通过代码自己指定,推荐用系统默认目录。

require_once("../Smarty-3.1.15/libs/Smarty.class.php");

$smarty=new Smarty;

$smarty->left_delimiter="<{"; //设定smarty变量左标记,默认为{

$smarty->right_delimiter="}>"; //设定smarty变量右标记,默认为}

分配变量

$smarty->assign(“title”,”标题”);

在模版中读取分配的内容<{title}>

程序中的数组

$arr5=array(

"emp1"=>array("id"=>"001","name"=>"xiaoming","age"=>"19"),

"emp2"=>array("id"=>"002","name"=>"daming","age"=>"15")

);

$smarty->assign("arr5",$arr5);

模版中数组读取

<{$arr5.emp1.name}>

程序中的对象

class Dog{

var $name;

var $age;

var $color;

function __construct($name,$age,$color){

$this->name=$name;

$this->age=$age;

$this->color=$color;

}

}

$dog1=new Dog("小朵","5","red");

$smarty->assign("dog1",$dog1);

模版中对象读取

<{$dog1->name}>

配置文件config/my.conf

title="我的第一个配置文件";

bgcolor="pink";

模版中读取配置文件

<h1><{#title#}></h1><br />

程序中的二维下标数组

$arr3=array(

array("河北","吉林","中州"),

array("财神","萨卤","贝清")

);

模版中循环读出二维数组中的数据,其中key是下标索引,外围的temp代表了一维数组,item代表数组中元素的内容

{foreach from=$arr3 item=temp key=k}

{foreach from=$temp item=val}

{$val}

{/foreach}

{/foreach}

Smarty直接获取值

<{$smarty.get.username}>//直接获取get方式传来的username的值

<{$smarty.server.SERVER_NAME}>//获取ip服务器名

自定义函数的注册

function test($args){

$str="";

for($i=0;$i<$args[‘time‘];$i++){

$str.="<font size=‘".$args[‘size‘]

."‘color=‘".$args[‘color‘]."‘>"

.$args[‘content‘]." "."</font>";

}

return $str;

}

//注册函数

$smarty->registerPlugin("function","hsp","test");

在模版中调用自定义函数

<h1>自定义函数的使用</h1>

{hsp time="4" size="5" content="自定义函数的调用" color="blue"}

自定义块的注册

function test2($args,$con){

$str="";

for($i=0;$i<$args[‘time‘];$i++){

$str.="<font size=‘".$args[‘size‘]

."‘color=‘".$args[‘color‘]."‘>"

.$con." "."</font>";

}

return $str;

}

$smarty->registerPlugin("block","blk","test2");

在模版中调用块

<h1>块调用</h1>

{blk time="4" size="5" color="blue"}

块的调用测试

{/blk}

Smarty插件,smarty插件在libs/plugins/目录下

函数插件的格式为function.hlp.php,块名block.blk.php,即function.函数名.php,block.块名.php

文件中程序代码格式为

smarty_function_hlp($args,&$smarty){}或块名smarty_block_blk($args,$con,&$smarty)

&$smarty是必要的格式,$con是模版中闭合标签的内容

变量调节器,连接字符串cat,首字母大写capitalize

{$varname | cat:”yez”:”second” | capitalize}//连接首字母并大写

{$eshtml|escape}//将html以普通文本输出

调节器插件modifer.xxx.php,程序函数名为smarty_modifer_xxx($string)

验证邮箱格式是否合法调节器

<?php

function smarty_modifier_isemail($str){

$pattern="/^[a-zA-Z_][a-zA-Z0-9_-]*@[a-zA-Z0-9]+(\.[a-zA-Z0-9]+)+$/i";

if(preg_match($pattern,$str)==1){

return "是合法的格式";

}else{

return "邮箱格式不合法";

}

}

?>

在模版中使用

<{$varname | isemail}>

preg_match($pattern,$str,$arrs);//得到的结果是一维数组

preg_match_all($pattern,$str,$arrs);//得到的结果是二维数组

{include file=”bottom.tpl” varname=”所传递的值”}

在bottom.tpl中{$varname}可获得传来的值

$smarty->caching=true;//开启缓存

$smarty->cache_lifetime=60;//设置缓存时间为60秒

$smarty->debugging=true;//开启调试台控制窗口

局部的代码实时更新

function insert_mytime(){return date(“Y-m-d h:i:s”);}

模版中使用{insert name=mytime}

设置编号的缓存

$smarty->display(“test.tpl”,”11”);//设置编号为11的缓存

$smarty->clearAllCache();//删除所有缓存

$smarty->clearCache(“test.tpl”,”11”);//删除指定编号的缓存

时间: 2024-11-09 01:46:11

转 smarty学习笔记电子版整理的相关文章

iOS学习笔记-精华整理

iOS学习笔记总结整理 一.内存管理情况 1- autorelease,当用户的代码在持续运行时,自动释放池是不会被销毁的,这段时间内用户可以安全地使用自动释放的对象.当用户的代码运行告一段 落,开始等待用户的操作,自动释放池就会被释放掉(调用dealloc),池中的对象都会收到一个release,有可能会因此被销毁. 2-成员属性:     readonly:不指定readonly,默认合成getter和setter方法.外界毫不关心的成员,则不要设置任何属性,这样封装能增加代码的独立性和安全

bootstrap 新手学习笔记 代码整理

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Bootstrap 实例 - 滚动监听(Scrollspy)插件方法</title> <link href="css/bootstrap.min.css" rel="stylesheet"> <script src="js/jqu

基于CentOS6.5的LNMP下memcached学习笔记的整理

1.概述 Memcached是一个C语言编写的高性能分布式的内存对象缓存系统,用于减少Web应用直接跟数据库交互,从而减轻数据库负载压力,将一些经常访问的数据对象以K/V(键/值)对的形式存放在内存中作为缓存数据.缓存是一种加速应用向后端服务器读取数据的优化手段,其思想是用对内存的读取换取直接对磁盘数据库中数据的操作,以提高web应用程序的访问速度,从而实现web动态页面高性能.高并发的访问. Memcached是通过C语言Danga Interactive开发编写的,使用libevent框架实

Vlan学习笔记终极整理

1.为什么需要VLAN 什么是VLAN? VLAN(Virtual LAN),翻译成中文是"虚拟局域网".LAN可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机构成的企业网络.VLAN所指的LAN特指使用路由器分割的网络--也就是广播域. 在此让我们先复习一下广播域的概念.广播域,指的是广播帧(目标MAC地址全部为1)所能传递到的范围,亦即能够直接通信的范围.严格地说,并不仅仅是广播帧,多播帧(Multicast Frame)和目标不明的单播帧(Unknown Unica

Freescale MC9S08AW60汇编学习笔记(整理)

MC9S08AW60是HCS08系列的MCU,它是8位的MCU,由HCS08核加上存储器和外围模块构成.HCS08系列的MCU除了MC9S08AW系列之外还有MC9S08GB系列.MC9S08GT系列.MC9S08AC系列等.不同型号的MCU应用领域的侧重点不同. HCS08系列的MCU就只有5个寄存器:A.H:X.SP.PC.CCR.分别是8位.16位.16位.16位.8位.具体功能要在使用中掌握.MC9S08AW60的主频为4MHz,一个总线周期为T=0.25us.MC9S08AW60存放数

smarty学习笔记

http://www.php100.com/manual/smarty/ smarty是一种PHP的模板引擎,提供让程序逻辑(PHP)与页面显示(HTML/CSS)代码分离的功能.使用smarty的好处:1.smarty语法简洁,不需要懂PHP语法.2.松耦合.将页面显示和业务逻辑分离,可以令模板源码有强制的约束.Smarty并非一个MVC,它仅是显示层,就是MVC中的V层(视图层). [未完待续]

Linux 学习笔记(未整理)

redhat 5.4中文显示乱码问题 安装 1.fonts-chinese-3.02-9.6.el5.noarch.rpm.  如果无法安装,则加个--force 2.fonts-ISO8859-2-75dpi-1.0-17.1.noarch.rpm 多数人到了这里就没有做其它操作了,导致仍然无法正确显示中文. 3.cd /usr/share/fonts/ 4.fc-cache -fv  # 以上的两个步骤,才是成功完成的关键!所以这里要特别注意!重新启动系统即可 建立交叉编译环境 在Linux

MYSQL 学习笔记记录整理之一聚集函数

函数 说明 AVG() 返回某列的平均值 COUNT() 返回某列的行数 MAX() 返回某列的最大值 MIN() 返回某列的最小值 SUM() 返回某列值之和 1.AVG()函数,可以返回所有列的平均值,也可以返回特定列或者行的平均值. 例子: SELECT AVG(prod_price) AS avg_price 别名 FROM products: 说明:返回表中所有产品的平均价格. SELECT AVG(prod_price) AS avg_price 别名 FROM products W

MYSQL 学习笔记记录整理之二:分组数据

1.创建分组 GROUP BY SELECT ven_id,COUNT(*) AS num_prods FROM products GROUP BY ven_id: 注意: GROUP BY可以包含任意数目的列 GROUP BY列出的每个列都必须是检索列或者有效的表达式(但不能是聚集函数).如果在SELECT语句中使用表达式,则必须在GROUP BY中指定相同的表达式,不能使用别名. 除聚集计算语句外,SELECT语句中的每个列都必须在GROUP BY子句中给出. GROUP BY必须出现在WH