`
jiagou
  • 浏览: 2534104 次
文章分类
社区版块
存档分类
最新评论

php学习笔记(三十五)smarty模板中使用变量的三种方式

 
阅读更多

init.smarty.php

<?php

	define("ROOT", ".");

	//解决问题:Warning: strftime() [function.strftime]:
	date_default_timezone_set("Asia/Shanghai");
	include ROOT."/libs/Smarty.class.php";
	
	$tpl = new Smarty();
	
	//smarty初始化
	$tpl->template_dir=ROOT."/templates/";
	$tpl->compile_dir=ROOT."/templates_c/";
	//配置文件位置
	$tpl->config_dir=ROOT."/configs/";
	$tpl->left_delimiter="<!--{";
	$tpl->right_delimiter="}-->";
	?>

mysmarty.php

<?php
/**
 * 
 * 以下所有使用变量都要基于设定的前缀和后缀
 * 
 * 一:模板中的注释
 * 	1.<!-- -->
 * 		查看源码可以看到
 * 	2.<!--{* *}-->
 * 		smarty的注释,源文件和编译后的文件中也是看不到的
 * 二:smarty中使用变量
 * 	1.从php中分配给模板变量
 * 		动态的数据(php从数据库或者文件,以及算法生成的变量)
 * 		任何类型 的数据都可以从php分配过来
 * 			标量:string,int,double,boolean
 * 			复合:array object NULL
 * 			关联数组:不是使用[i]而是使用.来访问
 * 			
 * 	2.在配置文件中给模板变量
 * 		模板的外观(界面)设计的变量
 * 		需要指定目录:
 * 			$tpl->config_dir=ROOT."./configs/";
 * 		创建文件view.conf(存放键值对形式)
 * 		模板页面需要导入配置文件
 * 			<!--{config_load file="view.conf"}-->
 *		使用<!--{#name#}-->(#必须紧挨着前缀和后缀)
 *		使用<!--{$smarty.config.name}-->(#必须紧挨着前缀和后缀)
 *		设定使用某个域的配置信息:
 *			[one]aa=11111
 *			[two]cc=22222
 *			[three]dd=33333
 * 			<!--{config_load file="view.conf" section="one"}-->
 * 	3.模板中存在的保留变量
 * 		php全局数组:
 * 		$_GET
 * 		$_POST
 * 		$_SESSION
 * 		$_COOKIE
 * 		$_REQUEST
 * 		$_SERVER
 * 		$_ENV
 * 		$_FILES
 * 		$GLOBALS define("ROOT", ".");
 * 		smarty一些常用的变量,模板中自带的
 * 		<!--{$smarty.get.*}-->
 * 		<!--{$smarty.post.*}-->
 * 		<!--{$smarty.cookie.*}-->
 * 		<!--{$smarty.session.*}-->
 * 		<!--{$smarty.env.*}-->
 * 		<!--{$smarty.server.*}-->
 * 		<!--{$smarty.request.*}-->
 * 		使用常量
 * 		<!--{$smarty.const.*}-->
 * 		<!--{$smarty.const.__FILE__}-->
 * 		<!--{$smarty.const.ROOT}-->
 * 		<!--{$smarty.now}-->
 * 		<!--{$smarty.now|date_format:"&Y-&m-&d &M:&M:&S"}-->
 * 		
 */
	//如果文件加载失败require会停止继续解析php;而include则会继续向下执行
	require 'init.smarty.php';
	
	$title="这是一个文字标题";
	
	$mysqli = new mysqli("localhost","root","root","hibernate");
	$result = $mysqli->query("select id,name,price from users");
	$row = $result->fetch_assoc();
	$name = $row["name"];
	$_SESSION["username"]="devilzy";
	
	class Person{
		var $name;
		var $age;
		function __construct($name,$age){
			$this->age = $age;
			$this->name = $name;
		}
		function say(){
			return $this->name."=".$this->age;
		}
	}
	
	$tpl->assign("title",$title);
	$tpl->assign("name",$name);
	$tpl->assign("array1",array("第一个","第二个","第三个"));
	$tpl->assign("array2",array("one"=>"关联第一个","two"=>"关联第二个"));
	$tpl->assign("array3",array("one"=>array("two"=>"我是二维数组")));
	$tpl->assign("person",new Person("张三", 10));
	$tpl->assign("num1",10);
	$tpl->assign("num2",20);
	$tpl->assign("page",$_GET["page"]);
	//模板文件名可以随便定义:比如:mysmarty.tpl只有内容是html就可以了
	$tpl->display("mysmarty.html");
?>

mysmarty.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<!--{config_load file="view.conf" section="one"}-->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title><!--{$title}--></title>
</head>
<body>
<!-- 普通 -->
<!--{$name}-->

<!-- 数组 -->
<!--{$array1[0]}-->
<!--{$array1[1]}-->
<!--{$array1[2]}-->

<!-- 关联数组 -->
<!--{$array2.one}-->
<!--{$array2.two}-->

<!-- 二维数组 -->
<!--{$array3.one.two}-->

<!-- 对象 -->
<!--{$person->name}-->
<!--{$person->age}-->
<!--{$person->say()}-->

<!-- 数学运算 -->
<!--{$num1}-->
<!--{$num2}-->
<!--{$num1+$num2*$num2-$num2}-->
<br>
<!--{$page}-->
<!--{$smarty.get.page}-->
<!--{$smarty.session.username}-->
<!--{* 就和php中的$_GET["page"] *}-->
<!--{$smarty.const.ROOT}-->
<!--{$smarty.now}-->
<!--{$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"}-->
<br>
执行的文件:<!--{$smarty.const.__FILE__}-->
<br>
访问的脚本文件:<!--{$smarty.server.SCRIPT_FILENAME}-->
<br>
<!-- 配置文件 -->
<!--{#aa#}-->
<!--{#bb#}-->
<!--{#cc#}-->
<!--{#dd#}-->
<table border="<!--{$smarty.config.boder}-->" width="<!--{#tabwidth#}-->" bordercolor="<!--{#tabboder#}-->">
	<tr bgcolor="<!--{#tgcor#}-->">
		<td>qqqq</td>
		<td>qqqq</td>
		<td>qqqq</td>
	</tr>
	<tr>
		<td>qqqq</td>
		<td>qqqq</td>
		<td>qqqq</td>
	</tr>
	<tr>
		<td>qqqq</td>
		<td>qqqq</td>
		<td>qqqq</td>
	</tr>
</table>
</body>
</html>

configs/view.conf

boder=10
tabwidth=800
tabboder=red
tgcor=yellow

[one]
aa=11111
bb=33
[two]
cc=22222
[three]
dd=33333

分享到:
评论

相关推荐

    PHP-Smarty模板笔记

    Smarty是一个使用PHP写出来的模板引擎,是业界最著名的PHP模板引擎之一。Smarty分离了逻辑代码和外在的内容,提供一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。Smarty工作的目的是要...

    达内学习笔记----SMARTY笔记.docx

    本文档是关于SMARTY的笔记,知识点归纳的很全,是在听了达内的老师和兄弟连的老师之后才整理出来的,相信通过该份笔记,学习smarty引擎可以不用再需要其他的笔记。 配有知识点总结 学习过程中写的案例 学习心得 一...

    PHP—Smarty模板

    Smarty是一个使用PHP写出来的模板引擎,是目前业界最著名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。简单的讲,目的就是...

    php开发smarty模板

    php开发所需的smarty模板,按照使用要求,可以直接在开发中使用。

    PHP Smarty简体中文参考手册(让你更快速掌握PHP Smarty模板引擎)

    PHP Smarty简体中文参考手册(让你更快速掌握PHP Smarty模板引擎,门户型网站常用技术)

    smarty模板中文手册

    2. 编译型:采用Smarty编写的程序在运行时要编译成一个非模板技术的PHP文件,这个文件采用了PHP与HTML混合的方式,在下一次访问模板时将WEB请求直接转换到这个文件中,而不再进行模板重新编译(在源程序没有改动的...

    smarty模板引擎中变量及变量修饰器用法实例

    主要介绍了smarty模板引擎中变量及变量修饰器用法,实例分析了smarty模板引擎中常见变量、变量修饰器及常量的具体用法,需要的朋友可以参考下

    php之Smarty模板引擎

    php Smarty

    Smarty模板中的for循环

    Smarty模板中的for循环,新建plugins文件,简化代码!

    linux+php+smarty模板的例子.zip

    linux+php+smarty模板的例子.zip PHP Web Development在Linux环境中配置(Smarty)

    (第28讲) PHP模板引擎Smarty的变量操作符

    1、什么是Smarty变量操作符? 2、如何使用Smarty变量操作符 3、介绍常用的20个变量符

    Smarty模板中文手册下载

    smarty是一个使用PHP写出来的模板PHP模板引擎,它提供了逻辑与外在内容的分离,简单的讲,目的就是要使用PHP程序员同美工分 离,使用的程序员改变程序的逻辑内容不会影响到美工的页面设计,美工重新修改页面不会影响...

    phpSmarty模板中文手册

    phpSmarty模板中文手册, Smarty For Template Designers [模板设计者篇] Smarty For Programmers [程序员篇]

    PHP模板引擎Smarty中的保留变量用法分析

    主要介绍了PHP模板引擎Smarty中的保留变量用法,较为详细的分析说明了Smarty中的保留变量的功能与具体使用方法,需要的朋友可以参考下

    PHP100视频教程 27:PHP模板引擎Smarty入门使用.rar

     Smarty是一个使用PHP写出来的PHP模板引擎,目的是要使用PHP程序同美工分离,使的程序员改变程序的逻辑内容时不会影响到美工的页面设计,美工重新修改页面时不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为...

    smarty模板引擎教程

    PHP Smarty 模板引擎的应用开发

    PHP模板引擎Smarty中变量的使用方法示例

    主要介绍了PHP模板引擎Smarty中变量的使用方法,详细讲述了Smarty模板的原理,下载,配置方法与变量的使用技巧,需要的朋友可以参考下

    smarty模板

    smarty模板,是最新的模板,其中可以实现php程序设计的一部分思想

    Smarty是一个使用PHP写出来的模板

    Smarty是一个使用PHP写出来的模板PHP模板引擎,是目前业界最著名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。简单的讲,...

Global site tag (gtag.js) - Google Analytics