模板引擎(smarty)知识点总结II
今天咱们继续来学习smarty!!!
知识点1:对于三种变量 常量的引用
有哪三种变量?a.assign赋值 b.系统保留变量(包括:$smarty.get,$smarty.post,$smarty.cookie,$smarty.session,$smarty.file,$smarty.request,$smarty.server,$smarty.env)c.配置文件 一般配置文件以.conf为主
$id = $_GET['id']?(int)$_GET['id']:0;
#要在html页面使用get传来的值,有两种方法
//1.assign()2.$smarty->get.变量名
<body>
<p>get变量:{$id}</p>
<p>get变量2:{$smarty.get.id}</p> </body>
</html>
post,cookie,session等用法与get一样
配置文件的读取
配置$smarty 的 config_dir目录,并把配置文件放在该目录下
在模板页面使用 {config_load.config file=配置文件名}
引用变量的两种方式
{$smarty.config.选项名}
{#选项名#}
require_once('./libs/Smarty.class.php');
$smarty = new Smarty();
$smarty->template_dir = './template';
$smarty->compile_dir = './comiple';
$smarty->config_dir = './config';//设置配置文件存放的位置
给个配置文件的写法建议: 选项1=值1,选项2=值2如下
site=杨cms系统
icp=蜀icp14689
tel='18483699374'
{config_load file='conf1.conf'}
<pre>
#####配置文件的读取#####
<pre>
<footer>
<p>{$smarty.config.site}</p>
<p>{#icp#}</p>
<p>{#tel#}</p>
常量的使用
方案一 同样使用assign
方案二 {$smarty.const.常量名}
define('NAME','我是主人顶一个常量A');//定义一个常量
<pre>$smarty.conf.NAME</pre>
######################### smarty assign append 详解 ############################
$smarty->assign($arr);
/*
通过源码的分析得到:如果只传入一个数组,那么数组会循环赋值,等同于 $smarty->assign('lang','php')$smarty->assign('like','yes')
*/
$smarty->assign('stu','wenhan');
$smarty->assign('stu','yang');
/*
分析得到:当参数一相同的时候,会产生覆盖,后一个覆盖前一个 解决知道 append 追加
*/
$smarty->append('teacher','x老师');
$smarty->append('teacher','y老师');
$smarty->append('teacher','z老师');
/*
分析源码:可以得出:如果 参数一相同 那么 会组建一个数组(
$this->tpl_val['teacher'][] = 'X老师' $this->tpl_val['teacher'][] = 'Y老师' $this->tpl_val['teacher'][] = 'Z老师'
)
*/
$a = "i\'m a";
$smarty->assign_by_ref('a',$a);//引用传值 $a = &$b ====>了解下 php5以后废除了引用传值
HTML代码:
<!DOCTYPE HTML>
<html>
<head>
<title> smarty assign append 引用传参的解释</title>
<meta name="Generator" content="EditPlus">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
</head> <body>
<table border='1'>
<tr>
<th>学生</th>
<th>语言</th>
<th>是否喜欢</th>
</tr>
<tr>
<td>{$stu}</td>
<td>{$lang}</td>
<td>{$like}</td>
</tr>
</table>
<p>{$teacher[0]}---{$teacher[1]}---{$teacher[2]}</p>
<!--<p>我是引用传值:{$a}</p>-->
</body>
</html>
今天所讲的 变量常量的使用,很好的说明了smarty灵活性还不错,同时也告诉我们如何引用post get传递的值
append 与 assign 的区别 可能出现在考试题中,这也不奇怪,毕竟smarty是主流的模板引擎,说道这里 后面我会像大家推荐其它的模板引擎以及使用模板引擎的好处与弊端
----------------------------------------------------see youO(∩_∩)O哈哈~
模板引擎(smarty)知识点总结II的更多相关文章
- PHP的模板引擎smarty原理是什么(整理)
PHP的模板引擎smarty原理是什么(整理) 一.总结 一句话总结:其实所有的模板引擎的工作原理是差不多的,无非就是在php程序里面用正则匹配将模板里面的标签替换为php代码从而将两者混合为一个ph ...
- PHP模板引擎Smarty内建函数section,sectionelse用法详解
本文实例讲述了PHP模板引擎Smarty内建函数section,sectionelse用法.分享给大家供大家参考,具体如下: section 是 Smarty 模板中除了 foreach 以外的另一种 ...
- Php模板引擎Smarty安装和配置
Smarty 是PHP的一个模板引擎,是由Monte Ohrt 和 Andrei Zmievski 使用PHP语言开发的,发展至今已成为一个非常流行的模板引擎,Smarty 提供了一种易于管理和使用的 ...
- php模板引擎smarty
一. smarty的特点 速度:相对于其他模板引擎,速度较快 编译型:在下次访问模板时直接访问编译文件,不再进行模板重新编译 缓存技术:可以将用户最终看到的HTML文件缓存成一个静态HTML 插件技术 ...
- php模板原理PHP模板引擎smarty模板原理浅谈
mvc是开发中的一个伟大的思想,使得开发代码有了更加清晰的层次,让代码分为了三层各施其职.无论是对代码的编写以及后期的阅读和维护,都提供了很大的便利. 我们在php开发中,视图层view是不允许有ph ...
- PHP的模板引擎smarty原理浅谈
mvc是开发中的一个伟大的思想,使得开发代码有了更加清晰的层次,让代码分为了三层各施其职.无论是对代码的编写以及后期的阅读和维护,都提供了很大的便利. 我们在php开发中,视图层view是不允许有ph ...
- Smarty模板引擎技术
Smarty模板引擎技术 什么是模板引擎? 什么是Smarty模板引擎? 为何选择Smarty模板引擎? 如何使用Smarty模板引擎? 一.历史背景 场景一:回顾之前编写PHP项目的方式 //链接数 ...
- 推荐13款javascript模板引擎
javaScript 在生成各种页面内容时如果能结合一些模板技术,可以让逻辑和数据之间更加清晰,本文介绍 X 款 JavaScript 的模板引擎.(排名不分先后顺序) 1. Mustache 基于j ...
- js模板引擎介绍搜集
js模板引擎越来越多的得到应用,如今已经出现了几十种js模板引擎,国内各大互联网公司也都开发了自己的js模板引擎(淘宝的kissy template,腾讯的artTemplate,百度的baiduTe ...
- php的模板引擎
设计一个交互式的网站,我们需要关注两个主要的问题:分别是图形用户界面和业务逻辑.例如,一个标准的web开发小组由两三个美工和三个程序员组成,则设计流程是:美工设计者制作了项目的网站的界面模板,然后把它 ...
随机推荐
- Python——Scrapy初学
Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架.可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中.Scrapy最初是为了页面抓取(更确切来说, 网络抓取)所设计的,也 ...
- 基于ESXI6.5的服务器基本配置(HP DL388 Gen 9)
最近一段时间由于做毕业设计的原因,一直处于忙碌状态,刚做完毕业设计,导师处于项目的原因,买了一台惠普服务器(人民币1.7万),服务器自带的内存仅有16 G,硬盘也就只有600G,而且磁盘还做了raid ...
- 软件测试管理QC
一.QC简介 1)是HP公司的产品,是B/S结构的产品 2)在QC服务器中,打开IE浏览器,在地址栏中输入QC服务器的网址或者IP地址. 查看虚拟机的IP地址: 本地连接-属性-TCP/IP协议(重点 ...
- C#检测获取移动硬盘盘符
最近做一个小工具, C# 对 移动硬盘的检测, var arr = DriveInfo.GetDrives(); 得出的所有磁盘,发现对于移动硬盘,DriveType 不是 Removable 类型 ...
- 基于 HTML5 Canvas 的 3D 模型列表贴图
少量图片对于我们赋值是没有什么难度,但是如果图片的量大的话,我们肯定希望能很直接地显示在界面上供我们使用,再就是排放的位置等等,这些都需要比较直观的操作,在实际应用中会让我们省很多力以及时间.下面这个 ...
- Spring之bean一基础
在前面得博客依赖注入与控制反转中演示了应用spring实现ioc,在ApplicationContext.xml中有bean的配置,里面只是bean简单的应用.这篇主要是进一步学习使用bean. 一. ...
- rabbitmq(中间消息代理)在python中的使用
在之前的有关线程,进程的博客中,我们介绍了它们各自在同一个程序中的通信方法.但是不同程序,甚至不同编程语言所写的应用软件之间的通信,以前所介绍的线程.进程队列便不再适用了:此种情况便只能使用socke ...
- Javascript 进阶 面向对象编程 继承的一个样例
Javascript的难点就是面向对象编程,上一篇介绍了Javascript的两种继承方式:Javascript 进阶 继承.这篇使用一个样例来展示js怎样面向对象编程.以及怎样基于类实现继承. 1. ...
- HPUX 11.31 MC-SG SGeRAC配置
HPUX 11.31 MC-SG SGeRAC配置 环境: 系统版本号 hp-unix 11.3v2 1503 serviceguard extension版本号 T1907 实施 1. 磁盘空间划分 ...
- jmeter的使用---web测试
jmeter的使用---web测试 url:http://127.0.0.1:1080/WebTours/ 1.通过badboy录制脚本 1.1输入url点击右侧的跳转按钮,随后右侧显示url界面 1 ...