模板引擎(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开发小组由两三个美工和三个程序员组成,则设计流程是:美工设计者制作了项目的网站的界面模板,然后把它 ...
随机推荐
- ccf 火车购票
import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Main2 { pu ...
- javafx 聊天室WeChat
[toc] 功能和特性 基于socket实现的c/s架构的的通信 服务器和客户心跳连接 gson实现的消息通信机制 注册及登录 支持私聊和群聊. 动态更新用户列表以及用户消息提示 支持emoji表情, ...
- 使用 Bundle 在 Activity 之间交换数据
[toc] 使用 Bundle 在 Activity 之间交换数据 场景 当一个 Activity 启动另一个 Activity 时,常常会有一些数据需要传过去.因为两个 Activity 之间本来就 ...
- jquery 动态创建的元素,绑定事件无效之解决方法
今天遇到一个问题,动态创建的元素,绑定事件无效,如下: js 代码如下: var OaddX = $('.detright div.duibi div.duibox ul li span'); // ...
- windows 下更新 npm 和 node
原文链接 公司的新项目要启动了,需要使用 Angular 4.0,并且使用 webpack 工具进行打包.所以就需要安装 node.node 的安装很简单,在 node 的官网 nodejs.org ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(88)-Excel导入和导出-主从表结构导出
前言 前面一篇详细讲解了导入导出,本节演示混合结构的导出功能!同时提供代码下载.. 代码下载 vs2015+无数据库 先看效果图:这个一个混合的Excel,列表与自定义信息的混合! 我们的步骤大概分为 ...
- HDU4508--完全背包
湫湫系列故事--减肥记I Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Tot ...
- 前端测试框架Jest系列教程 -- Mock Functions
写在前面: 在写单元测试的时候有一个最重要的步骤就是Mock,我们通常会根据接口来Mock接口的实现,比如你要测试某个class中的某个方法,而这个方法又依赖了外部的一些接口的实现,从单元测试的角度来 ...
- 200行Java代码搞定计算器程序
发现了大学时候写的计算器小程序,还有个图形界面,能够图形化展示表达式语法树,哈哈;) 只有200行Java代码,不但能够计算加减乘除,还能够匹配小括号~ 代码点评: 从朴素的界面配色到简单易懂错误提示 ...
- Qt快速上手(学习笔记四)
拖了大半年,今天终于有更新了...我自己都不好意思,最近太忙了! 今天讲一下:QML语法 一 概述 QML是一种专门用于构建用户界面的编程语言,它允许用户构建高性能,具有流畅特效的可视化应用程序,QM ...