模板引擎(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 $i@first == $i@iteration}
{else if $i@last == $i@iteration}
也可以这样
{if$i@first} {if@last}
因为源码中是只要是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} {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}
{if $i@iteration %3 == 0}<br/>{/if}
{/for}
<h2>一共{$i@total}行</h2>
</p>
<h2>将第一行与最后一行的内容颜色变红</h2>
<p>
{for $i=$start to $end step 5} {if $i@first == $i@iteration}
<font color='red'>{$i} </font>
{else if $i@last == $i@iteration}
<font color='red'>{$i} </font>
{else}
{$i}
{/if}
{/for}
<h2>一共{$i@total}行</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 $item@first || $item@last}
<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 $v@first || $v@last}
<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>
模板引擎(smarty)知识点总结五的更多相关文章
- 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开发小组由两三个美工和三个程序员组成,则设计流程是:美工设计者制作了项目的网站的界面模板,然后把它 ...
随机推荐
- 分水岭 golang入坑系列
第三式开篇语有些负面, 所以这里就不贴了.有兴趣的自己可以去看看 https://andy-zhangtao.gitbooks.io/golang/content/ .怒发冲冠,意气之作.看完就完了, ...
- Python之三目运算符
Python语言不像Java.JavaScript等这些语言有类似: 判段的条件?条件为真时的结果:条件为假时的结果 这样的三目运算,但是Python也有自己的三目运算符: 条件为真时的结果 if 判 ...
- C语言之随机数
#include<stdio.h>#include<stdlib.h>#include<time.h>int main(){ srand(time(0)); int ...
- JavaScript中typeof,instanceof,hasOwnProperty,in的用法和区别
一. typeof操作符 typeof操作符用于返回正在使用值的类型. // 使用原始值 let mNull = null; let mUndefined = undefined; let mStri ...
- 11个优秀的Android开发开源项目
一. 一个类似微信的时光轴效果 时光轴效果 项目地址 https://github.com/ljtyzhr/TimeLine 二. 安卓选择器类库,包括日期.时间.单项.双项选择器.城市地址选择器 ...
- 崩溃 golang入坑系列
早上(11.30)收到邮件,Vultr东京机房网络故障.当时搭建SS时,考虑到了机房故障.所以特意分出了日本和香港两条线路.但千算万算,忘记数据库还在东京机房中. 现在网络故障,SS服务器无法读取数据 ...
- 安装 Qt 及所需 gcc 等
嫌麻烦,下载离线安装包一次性装好 Qt 及 Qt Creator (Community) Qt 安装包下载地址 http://download.qt.io/official_releases/qt/ ...
- 再学习之Spring(依赖注入)
一.概述 Spring框架是以 简化Java EE应用程序的开发 为目标而创建的.Spring可以实现很多功能,但是这些功能的底层都依赖于它的两个核心特性,也就是依赖注入和面向切面编程.几乎Sprin ...
- codeforces 895B XK Segments 二分 思维
codeforces 895B XK Segments 题目大意: 寻找符合要求的\((i,j)\)对,有:\[a_i \le a_j \] 同时存在\(k\),且\(k\)能够被\(x\)整除,\( ...
- 有关nginx的配置文件 之server
下面是vhost中的其中一个xxxx.conf文件 . [Shell] 纯文本查看 复制代码 ? 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 ...