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}> ... 
随机推荐
- Intellij IDEA 自动清除无效 import 和 清除无效 import 的快捷键 ctrl+alt+o
			快捷键 ctrl+alt+o 自动清除的配置方法 可以settings-general-auto import-java项,勾选optimize imports on the fly,在当前项目下会自 ... 
- Android  HandlerThread  源代码分析
			HandlerThread 简单介绍: 我们知道Thread线程是一次性消费品,当Thread线程运行完一个耗时的任务之后.线程就会被自己主动销毁了.假设此时我又有一 个耗时任务须要运行,我们不得不又 ... 
- Dictionary简洁
			mydic_ShuiFei = new Dictionary<string, string>() { {"00000336","南京市 ... 
- Mysql INSERT、REPLACE、UPDATE的区别
			用于操作数据库的SQL一般分为两种,一种是查询语句,也就是我们所说的SELECT语句,另外一种就是更新语句,也叫做数据操作语句.言外之意,就是对数据进行修改.在标准的SQL中有3个语句,它们是INSE ... 
- nginx与apache的参考配置
			nginx与apache是两大最主流的服务器,功能强大,但配置起来也比较麻烦,对于初学者来讲可能有些地方并不完全清楚其作用,这里搜集了一些配置的作用及其使用方法.其中nginx提供了推荐配置,而apa ... 
- 【经验分享】我经历的几门MOOC
			这半年来,从1月初到6月底,在coursera上注册了4们有关数据分析/挖掘的课程.这些课程都是利用业余时间学习,每周基本上花5个小时左右.其中通过了3门,注销了一门.感觉还是学到了一些东西. 第一门 ... 
- 2. RabbitMQ 服务器 之下载安装
			RabbitMQ服务器如何安装? RabbitMQ是一个AMQP(Advanced Message Queue,即高级消息队列协议)服务器 . 下载地址: RabbitMQ下载 安装说明:各平台下Ra ... 
- linux每日命令(25):Linux文件类型与扩展名
			Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念.我们通过一般应用程序而创建的比如file.txt.file.tar.gz ,这些文件虽然要用不同的程序来打开,但放在Linux文 ... 
- Error:java: invalid source release 无效的源发行版: 8
			原因:这是由于jdk的版本与项目的要求不一致造成的,如果是maven项目,首先查看一下pom.xml,以我的项目为例: 从其中可以看出要求的编译插件为1.8版本,而我本机上安装的jdk为1.7版本,因 ... 
- iOS开发支付宝支付
			iOS支付宝支付(Alipay)详细接入流程以及项目中遇到的问题分析 浏览: 149 发布日期: 2016-10-19 分类: ios 最近在项目中接入了微信支付和支付宝支付,总的来说没有那么 ... 
