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}> ...
随机推荐
- Core Animation学习总结
文件夹: The Layer Beneath The Layer Tree(图层树) The Backing Image(寄宿层) Layer Geometry(图层几何学) Visual Effec ...
- JavaScript:jklyDB
ylbtech-JavaScript:jklyDB 1.返回顶部 1.jklyDB.sql -- ============================================= -- 军科 ...
- 给力开源,.Net开源地址大收集
一.基础类库: 1,项目名:Npoi 资源星级:★★★ (个人评的) 介绍:NPOI - 一个能帮助你直接读写office文件流的库 系统教程:http://www.cnblogs.com/tonyq ...
- Use Multiple log4net Outputs from One Application
Introduction This is an article simply to demonstrate how to use several output log files depending ...
- from String value ('{}'); no single-String constructor/factory
需要为类增加一个接受String的构造函数: 例如: public class B { private String name; public B(String b) { } public Strin ...
- apacheh2.4和php5.5集成环境遇到的问题
装了wampserver64位,里面的php是5.5,apache是2.4 1.配置虚拟主机时碰到问题:apache AH01630: client denied by server configur ...
- Ubuntu 安装nginx
https://www.nginx.com/resources/admin-guide/load-balancer/ https://github.com/gplessis/dotdeb-nginx/ ...
- javascript promises powered by BlueBird
什么是promises? 为什么需要promises? 参见: https://promisesaplus.com/ 使用示例: 使用promises之前,代码的编写方式: 使用promises之后: ...
- Source Insight 有用设置配置
source insight代码对齐Tab键终极版 以前也写过一个source insight代码对齐,由于自己理解不够深刻,只能解决部分问题,不能根治在source insight中对齐的代码在XX ...
- 【spark 深入学习 05】RDD编程之旅基础篇-01
---------------- 本节内容 1.RDD的工作流程 2.WordCount解说 · shell版本WordCount · java版本WordCount -------------- ...