模板引擎(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哈哈~

时间: 2024-08-05 20:53:06

模板引擎(smarty)知识点总结II的相关文章

PHP模板引擎smarty详细介绍

篇文章主要介绍了PHP模板引擎smarty详细介绍,本文讲解了什么是smarty.smarty优点.不适合使用smarty的地方.smarty目录结构及版本,需要的朋友可以参考下 /* 一.什么是smarty? smarty是一个使用PHP写出来的模板PHP模板引擎,它提供了逻辑与外在内容的分离,简单的讲, 目的就是要使用PHP程序员同美工分离,使用的程序员改变程序的逻辑内容不会影响到美工的页面设计,美工重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要. 二.smarty优

php模板原理PHP模板引擎smarty模板原理浅谈

mvc是开发中的一个伟大的思想,使得开发代码有了更加清晰的层次,让代码分为了三层各施其职.无论是对代码的编写以及后期的阅读和维护,都提供了很大的便利. 我们在php开发中,视图层view是不允许有php代码来操作数据库之类的来获取数据的,我们一般都会在控制器层controller,就已经把视图层要展示的数据准备好,方便视图层直接用来展示. smarty模板技术,可以让数据和视图进行分离,让视图中不能直接出现php代码.这样的话,让前段页面的开发和后台数据的开发,可以双管齐下,同时进行了. sma

PHP模板引擎Smarty

不知道从什么时候开始,有人开始对 HTML 内嵌入 Server Script 觉得不太满意.然而不论是微软的 ASP 或是开放源码的 PHP,都是属于内嵌 Server Script 的网页伺服端语言.因此也就有人想到,如果能把程序应用逻辑 (或称商业应用逻辑) 与网页呈现 (Layout) 逻辑分离的话,是不是会比较好呢? 其实这个问题早就存在已久,从交互式网页开始风行时,不论是 ASP 或是 PHP 的使用者都是身兼程序开发者与视觉设计师两种身份.可是通常这些使用者不是程序强就是美工强,如

PHP 模板引擎Smarty的基本语法

所有的smarty标签都被加上了定界符.在smarty里,所有定界符以外的内容都是静态的,当smarty遇到了模板标签,将尝试解释他们,然后再以恰当的方式输出. 默认情况下是 {和},但它们是可定制的.定制方法是: $smarty->left_delimiter = '<!--{'; $smarty->right_delimiter = '}-->'; 1.注释 模板注释被*号包围,例如 {* this is a comment *} smarty注释将不被输出.它是模板内在的注释

模板引擎smarty 二

条件判断语句(这些语句都是写在smarty模板中的) {if $name eq 'Tom'} Welcome Sir {elseif $name eq 'Wilma'} Welcome Ma'am {else} Welcome,whatever yu are {/if} 注意:以if开始,以/if结尾,格式固定: eq修饰符,相当于'==' neq ,相当于'!='; gt,相当于'>';        lt,相当于'<'; 循环语句section 1. 功能多,参数多.smarty用来做循环

推荐13款javascript模板引擎

javaScript 在生成各种页面内容时如果能结合一些模板技术,可以让逻辑和数据之间更加清晰,本文介绍 X 款 JavaScript 的模板引擎.(排名不分先后顺序) 1. Mustache 基于javascript 实现的模板引擎,类似于 Microsoft’s jQuery template plugin,但更简单易用! 2. EasyTemplate 在使用过Freemarker模 板后,感觉它的 语法比较朴实,平易近人,容易上手,于是决定按它的语法风格实现一个前端的 模板引擎,这就有了

js模板引擎介绍搜集

js模板引擎越来越多的得到应用,如今已经出现了几十种js模板引擎,国内各大互联网公司也都开发了自己的js模板引擎(淘宝的kissy template,腾讯的artTemplate,百度的baiduTemplate等),如何从这么多纷繁的模板引擎中选择一款适合自己的呢,笔者最近对主流的js模板引擎(mustache,doT,juicer,artTemplate,baiduTemplate,Handlebars,Underscore)做了一番调研,分享出来希望对大家有用. 从这几个指标来比较js模板

php的模板引擎

设计一个交互式的网站,我们需要关注两个主要的问题:分别是图形用户界面和业务逻辑.例如,一个标准的web开发小组由两三个美工和三个程序员组成,则设计流程是:美工设计者制作了项目的网站的界面模板,然后把它交给PHP 程序员,程序员在外观的基础上使用PHP+MYSQL实现程序的业务逻辑,然后工程又被返回到美工人员的手里对页面进行渲染. 一句话:Smarty引擎即是分离web应用程序逻辑层和表现层的工具,  同时也是让应用程序员和美工分开扮演不同的角色.所以程序员和美工都是需要学习使用Smarty,但学

Smarty模板引擎技术(二)

一.使用Smarty模板引擎步骤 第一步:引入smarty核心类文件并创建一个smarty实例对象: include_once “libs/smarty/Smarty.class.php”; $smarty=new Smarty(); 第二步:对核心类中属性或变量的配置 $smarty->template_dir=”./templates”; $smarty->compile_dir=”./templates_c”; $smarty->config_dir=”./configs”; $s