smarty模板操作变量
调用模板内的assign函数分配的变量也是这样.(译注:也是用$加变量名来调用)
从配置文件读取的变量
<!-- <{$smarty.post.password}>
<{$smarty.server.SERVER_NAME}> -->
<{$smarty.server.SERVER_NAME}><br />
<?php
//创建smarty对象
require_once './libs/Smarty.class.php';
$smarty = new Smarty;//建立smarty实例对象$smarty
$smarty -> caching = false;//是否使用缓存
$smarty -> template_dir = "./templates";//设置模板目录
$smarty -> compile_dir = "./templates_c";//设置编译目录
$smarty -> cache_dir = "./smarty_cache";//缓存文件夹
//修改左右边界符号
$smarty -> left_delimiter="<{";
$smarty -> right_delimiter="}>";
/* 获取基本数据类型*/
$smarty -> assign("aa","hello");//获取字符串
$smarty -> assign("bb",567);//获取整数
$smarty -> assign("cc",56.7);//获取小数
$smarty -> assign("dd",true);//boolean值
$smarty -> assign("ee",false);//boolean值
/* 复合数据类型 */
//存放一维数组,数组一般是从数据库中取出
//这里先模拟数据
//1.普通的索引数组
$arr1 = array("北京","上海","杭州");
//2.关联数组
$arr2 = array("city1"=>"北京","city2"=>"上海","city3"=>"杭州");
//存放二维数组,一般从数据库提取,这里仅仅是模拟
//1.索引二维数组
$arr3 = array(array("北京","上海","杭州"),array("气温","房价","薪水"));
//2。关联二维数组(外面是索引,里面是关联)
$arr4 = array(array('id'=>'a001','email'=>'dada@gmail.com','age'=>25),array('id'=>'a002','email'=>'xixi@gmail.com','age'=>24));
//3。关联二维数组(外面,里面都是关联)
$arr5 = array('emp1'=>array('id'=>'a001','email'=>'dada@gmail.com','age'=>25),'emp2'=>array('id'=>'a002','email'=>'xixi@gmail.com','age'=>24));
//4。关联二维数组(外面是关联,里面是索引)
$arr6 = array('emp1'=>array('a001','dada@gmail.com',25),'emp2'=>array('a002','xixi@gmail.com',24));
$smarty -> assign("ff",$arr1);//
$smarty -> assign("gg",$arr2);//
$smarty -> assign("hh",$arr3);//
$smarty -> assign("ii",$arr4);//
$smarty -> assign("jj",$arr5);//
$smarty -> assign("kk",$arr6);//
//对象的取法
class Master{
var $name;
var $address;
}
//实例化
$master = new Master;
$master -> name = "dada";
$master -> address = "海淀区";
class Dog{
var $name;
var $age;
var $color;
var $arr;
var $arr2;//二维数组
var $master;
function __construct($name,$age,$color,$arr,$arr2){
$this -> name = $name;
$this -> age = $age;
$this -> color = $color;
$this -> arr = $arr;
$this -> arr2 = $arr2;
}
}
//实例化一个对象
$dog1 = new Dog("小马",4,"红色",$arr1,$arr4);
$dog1 -> master = $master;
$smarty -> assign("ll",$dog1);//
//希望把get/post/session/server的数据传递给tpl
// 传统
$username = $_GET['username'];
$smarty -> assign("username",$username);
//如果用smarty来写的话,可以直接去tpl页面获取
//指定用哪个模版显示
$smarty -> display("test.tpl");//
?>
2.test.tpl
<{config_load file = '../config/my.conf'}>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
body{
2background: #ccc;
}
</style>
<link rel="stylesheet" href="css/css_base.css">
</head>
<body bgcolor = '<{#bgcolor#}>'>
<div>***********从配置文件读取的变量*************</div>
<h2><{#title#}></h2>
<h1>获取数据</h1>
<div>***********取出字符串*************</div>
<{$aa}>
<div>***********取出整数*************</div>
<{$bb}>
<div>***********取出小数*************</div>
<{$cc}>
<div>***********boolean值-真*************</div>
<{$dd}>
<div>***********boolean值-假(返回是空的,在php中空本来就代表假的)*************</div>
<{$ee}>
<div>*********** 一维数组(普通的索引数组)*************</div>
<{$ff[0]}>||<{$ff[1]}>||<{$ff[2]}>
<div>*********** 一维数组(关联数组)***********</div>
<{$gg.city1}>||<{$gg.city2}>||<{$gg.city3}>
<div>*********** 二维数组(索引数组)***********</div>
<{* $arr3[0][0]表示取出arr3二维数组的第一个数组元素中的第一个元素 *}>
<{$hh[0][0]}>||<{$hh[1][0]}>||<{$hh[0][2]}>
<div>*********** 二维数组(关联数组,外面是索引,里面是关联)***********</div>
<{$ii[0].email}>||<{$ii[1].age}>||<{$ii[1].id}>
<div>*********** 二维数组(关联数组)***********</div>
<{* 关联数组应该用.来操作,索引数组用的是[]操作 *}>
<{$jj.emp1.email}>||<{$jj.emp1.age}>||<{$jj.emp2.id}>
<div>*********** 二维数组(关联数组,外面是关联,里面是索引)***********</div>
<{$kk.emp1[0]}>||<{$kk.emp1[1]}>||<{$kk.emp2[0]}>||<{$kk.emp2[1]}>
<{* 有多层数组嵌套的话,就不断递归处理 *}>
<div>*********** 取出对象属性的值***********</div>
取出对象普通属性的值:<{$ll -> name}>||<{$ll -> age}>||<{$ll -> color}><br />
取出对象一维数组属性的值:<{$ll -> arr[0]}><br />
取出对象二维数组属性的值:<{$ll -> arr2[0].id}><br />
取出对象的对象属性的值:<{$ll -> master -> name}><br /><br />
<div>***********属性必须是公开的,不然取不出来**************</div>
<div>***********传统方法**************</div>
<{$username}><br />
<div>***********获取保留变量(get获取)**************</div>
<{$smarty.get.password}><br />
<!-- <{$smarty.post.password}>
<{$smarty.server.SERVER_NAME}> -->
<{$smarty.server.SERVER_NAME}><br />
<script src="js/js_base.js"></script>
</body>
</html>
3.my.conf
title = "这是第一个网站"
bgcolor = "pink"
smarty模板操作变量的更多相关文章
- 三,Smarty模板技术/引擎——变量操作(2)
1, 变量的分类 ① 从PHP中分配的变量,比如a.php跳转到b.php时候,可以在a.php中分配变量,b.tpl中直接调用.a.php中代码,$smarty->assign(‘str’,’ ...
- 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模板,看到有人在群上问到怎么使用自定义的常量,今天就具体来谈谈: 一.开发一个项目,必不可少会用 ...
- smarty 模板几个例子
一.assign和display方法的使用以及几个变量调节器 header("content-type:text/html;charset=utf-8");//加载Smarty引擎 ...
- smarty模板引擎
1. 使用smarty 1.1 项目引入 // 3, 连接数据库,提取相关数据 $title = "Smarty模板引擎"; $content = "Smarty模 ...
- Smarty模板函数
1.{$var=...} 这是{assign}函数的简写版,你可以直接赋值给模版,也可以为数组元素赋值. <{$a = 10}><!--赋值语句--> <{$a}> ...
随机推荐
- java实现在线浏览zip文件及文件下载
应用背景:我们知道压缩文件中某一个文件的名字,只想下载这个文件而不下载整个压缩文件. 先来看一上QQ邮箱的附件浏览: 以下是我们第一个版本的: 业务逻辑中还要判读用户是否有此文件的防问权限 2017- ...
- 使用zlib库进行目录打包
代码很简单,具体过程就不写了. 关于加密压缩,可以看http://www.zlib.net/zlib_faq.html#faq38 中的描述,说是不支持的,但是创建的时候可以传入密码进去,不过我还没有 ...
- 动态改变APP图标
一.iOS动态更换App图标(一):基础使用 该功能应用的场景 1.白天/夜间模式切换,在切换App主色调同时切换App图标. 2.各类皮肤主题(淘宝就可换肤),附带App图标一块更换. 3.利用Ap ...
- c++类大四个默认函数-构造函数 析构函数 拷贝构造函数 赋值构造函数
每个类只有一个析构函数和一个赋值函数,但可以有多个构造函数(包含一个拷贝构造函数,其它的称为普通构造函数).对于任意一个类A,如果不编写上述函数,C++编译器将自动为A 产生四个缺省的函数,例如: A ...
- PEM文件
原文链接: http://blog.sina.com.cn/s/blog_489f88710100a59w.html OpenSSL 使用 PEM 文件格式存储证书和密钥.PEM 实质上是 Base6 ...
- [svc]sed&awk过滤行及sed常用例子
- sed过滤行 sed '2p' sed '2,5p' sed '2p;3p;4p' - awk过滤行 awk 'NR==2' awk 'NR>=2 && NR <=3' ...
- SILK 预测模块分析
SILK是一种新结构的基于噪声整形量化算法的编解码框架.不同于类CELP的AMR,EVRC,G729,Speex等标准. 类CELP的结构都是以码本激励为量化框架的编码器.但是这里并不讨论NSQ结构和 ...
- ecshop首页调用团购信息产品购买人数
当我们在ecshop后台录入ecshop的团购信息之后,我们在ecshop的前台首页index.php里面,可以看到他能调用ecshop的团购商品信息,其中就包括团购商品的一些价格信息.但是如何在ec ...
- [备份]EntityFramework
本视频和分步演练介绍通过 Code First 开发建立新数据库.这个方案包括建立不存在的数据库(Code First 创建)或者空数据库(Code First 向它添加新表).借助 Code Fir ...
- Halcon的数据类型
两大类: 1.图形参数Iconic (image, region, XLD) 2.与控制参数Control (string, integer, real, handle), 在Halcon算子的参数中 ...