模板引擎(smarty)知识点总结五

---------重点知识:循环------------

/*
   smarty 循环之for循环
 */

/*
    基本的语法
        {for $i=$start to $end step = 1}
            表示从$start开始循环 再到$end结束  step 表示步长
        {/for}
  */

  $msma->assign(‘start‘,1);
  $msma->assign(‘end‘,100);
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title> smarty11 </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>
    <pre>  {literal}
        模板的循环
            {for $i=$start to $end step  1}{/for}
            表示从$start开始循环 再到$end结束  step 表示步长
            将第一行与最后一行的内容颜色变红
                {if [email protected] == [email protected]}
                {else if [email protected] == [email protected]}
                也可以这样
                {[email protected]}

                {[email protected]}
                因为源码中是只要是first和last就为真其余都为0{/literal}
    </pre>
        <P>
            {for $i=$start to $end}
                {$i}<br/>
            {/for}
        </p>
        <h2>每3个换一行</h2>
        <P>

            {for $i=$start to $end}
                {$i}&nbsp;{if ($i%3 == 0)}<br/>{/if}
            {/for}
        </p>
        <p>
            输出奇数
            {for $i=$start to $end step 2}
                {$i}<br/>
            {/for}
        </p>
      <h2>每3个换一行</h2>
      <p>
        {for $i=$start to $end step 2}
            {$i}&nbsp;
            {if [email protected] %3 == 0}<br/>{/if}
        {/for}
        <h2>一共{[email protected]}行</h2>
      </p>
       <h2>将第一行与最后一行的内容颜色变红</h2>
      <p>
        {for $i=$start to $end step 5}

            {if [email protected] == [email protected]}
            <font color=‘red‘>{$i}&nbsp;</font>
            {else if [email protected] == [email protected]}
            <font color=‘red‘>{$i}&nbsp;</font>
            {else}
            {$i}&nbsp;
            {/if}
        {/for}
        <h2>一共{[email protected]}行</h2>
      </p>
 </body>
</html>

----foreach循环

/*
    基本的语法
        smarty2的写法---{foreach from=循环的数组  key=k item=item}{/foreach}
            smarty3的写法---{foreach $数组 as $k=>$v}{/foreach}
  */

<?php
 /************
   YJC php 之路
 ************/
 /*
   smarty 循环之foreach循环
 */
 ##########
 header(‘content-type:text/html;charset=utf-8‘);
  require_once ‘libs/Smarty.class.php‘;
  require ‘MySmarty.class.php‘;
  $msma = new MySmarty();
  /*
    基本的语法
        smarty2的写法---{foreach from=循环的数组  key=k item=item}{/foreach}
            smarty3的写法---{foreach $数组 as $k=>$v}{/foreach}
  */
  $conn = new mysqli(‘localhost‘,‘root‘,‘root‘,‘boolshop‘);
  $conn->query(‘set names utf8‘);
  if($conn->connect_error){
    die($conn->connect_error);
  }
  $sql = ‘select * from goods limit 10‘;
  $res = $conn->query($sql);
  $data = array();
  while($row = $res->fetch_assoc()){
    $data[]  = $row;
  }

  $msma->assign(‘goodslist‘,$data);
  $msma->display(‘temp12.html‘);
?>
<!DOCTYPE html>
<html>
 <head>
  <title> smarty12 </title>
  <meta charset=‘utf-8‘/>
 </head>

 <body>
   {literal}
    <pre>
        模板的循环
            smarty2的写法---{foreach from=循环的数组  key=k item=item}/foreach}
            smarty3的写法---{foreach $数组 as $k=>$v}{/foreach}
    </pre>
    {/literal}
        <table height=‘400‘ cellspacing=‘0‘ cellpadding=‘0‘ border=‘1‘>
            <tr>
                <th>编号</th>
                <th>商品序号</th>
                <th>商品名</th>
                <th>商品价格</th>
            </tr>
            {foreach key=key item=item from=$goodslist}
            {if [email protected] || [email protected]}
            <tr style=‘background-color:#ccc‘>
                <td>{$item.goods_id}</td>
                <td>{$item.goods_sn}</td>
                <td>{$item.goods_name}</td>
                <td>{$item.shop_price}</td>
            </tr>
            {else}
                <tr >
                <td>{$item.goods_id}</td>
                <td>{$item.goods_sn}</td>
                <td>{$item.goods_name}</td>
                <td>{$item.shop_price}</td>
            </tr>
            {/if}
            {/foreach}
        </table>
        <pre>方法二</pre>
        <table height=‘400‘ cellspacing=‘0‘ cellpadding=‘0‘ border=‘1‘>
            <tr>
                <th>编号</th>
                <th>商品序号</th>
                <th>商品名</th>
                <th>商品价格</th>
            </tr>
            {foreach $goodslist as $k=>$v}
            {if [email protected] || [email protected]}
            <tr style=‘background-color:#f69‘>
                <td>{$v.goods_id}</td>
                <td>{$v.goods_sn}</td>
                <td>{$v.goods_name}</td>
                <td>{$v.shop_price}</td>
            </tr>
            {else}
                <tr >
                <td>{$v.goods_id}</td>
                <td>{$v.goods_sn}</td>
                <td>{$v.goods_name}</td>
                <td>{$v.shop_price}</td>
            </tr>
            {/if}
            {/foreach}
        </table>
 </body>
</html>

/*
   smarty 循环之section\ while循环
 */

/*
    基本的语法
        section 只用于索引数组
      {section loop=循环的数组 name=任意符合php变量的名字}
        name=index 代表每一次循环的键值 0  1 2 3
      {/section}
      显示时  $arr[index].键名
      {while 变量 条件}
      {$i++} or {$i--}
      {/while}
      smarty数学计算不支持{++$i} {--$i} 因此在while  for  if
      等都不能这样使用

*/

 <body>
   {literal}
    <pre>

    基本的语法
        section 只用于索引数组
      {section loop=循环的数组 name=任意符合php变量的名字}
        name=index 代表每一次循环的键值 0  1 2 3
      {/section}
      显示时  $arr[index].键名
      {while 变量 条件}
      {$i++} or {$i--}
      {/while}
      smarty数学计算不支持{++$i} {--$i} 因此在while  for  if
      等都不能这样使用
    </pre>
    {/literal}
        <table height=‘400‘ cellspacing=‘0‘ cellpadding=‘0‘ border=‘1‘>
            <tr>
                <th>编号</th>
                <th>商品序号</th>
                <th>商品名</th>
                <th>商品价格</th>
            </tr>
            {section loop=$goodslist name=i}
            {if  $smarty.section.i.first || $smarty.section.i.last}
            <tr style=‘background-color:#ccc‘>
                <td>{$goodslist[i].goods_id}</td>
                <td>{$goodslist[i].goods_sn}</td>
                <td>{$goodslist[i].goods_name}</td>
                <td>{$goodslist[i].shop_price}</td>
            </tr>
            {else}
                <tr >
                <td>{$goodslist[i].goods_id}</td>
                <td>{$goodslist[i].goods_sn}</td>
                <td>{$goodslist[i].goods_name}</td>
                <td>{$goodslist[i].shop_price}</td>
            </tr>
            {/if}
            {/section}
        </table>
        <pre>while</pre>
        {while $num >=0}
            {$num--}<br/>
        {/while}
 </body>
时间: 2024-10-12 03:11:25

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

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)知识点总结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页面

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