模板引擎(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开发小组由两三个美工和三个程序员组成,则设计流程是:美工设计者制作了项目的网站的界面模板,然后把它 ...
随机推荐
- 用python批量修改文件名
从youtube上当下来百来首mv,每个都需要去掉视频,这还挺好弄得,格式工厂一弄就完了,但是文件名,都带有乱七八糟的*啥的巴拉巴拉的,咋修改啊,几百首总不可能一个一个rename吧 #批量修改文件名 ...
- Web 动画帧率(FPS)计算
我们知道,动画其实是由一帧一帧的图像构成的.有 Web 动画那么就会存在该动画在播放运行时的帧率.而帧率在不同设备不同情况下又是不一样的. 有的时候,一些复杂或者重要动画,我们需要实时监控它们的帧率, ...
- google软件测试之道读后感(一)
这几天在抽空读一本新书,久负盛名的<google软件测试之道>.之前在网络上一点一点地看过它的英文版,很受触动,还做了很长的读书笔记,现在看到了中文版,才恍觉之前的好些理解存在不恰当的地方 ...
- Sagit.Framework For IOS 开发框架入门开发教程2:一行代码实现引导页
前言: 开篇比较简单:Sagit.Framework For IOS 开发框架入门开发教程1:框架下载与环境配置 第二篇教程之前写了一半,感觉不太好写,而且内容单纯介绍API,要说的很多,又枯燥乏味. ...
- Heritrix1.14.4在Eclipse的配置和使用
转载 1.首先在 Eclipse 中新建 Java 工程 ,工程名自取,以MyHeritrix为例.利用下载的源代码包根据以下步骤来配置这个工程. 2.导入类库 Heritrix 所用到的工具类库都在 ...
- window.open()被拦截问题
最近做项目的时候遇到一个需求,在商品详情页面中点击购买按钮,之后再新标签页中打开生成的订单页面,所以想用window.open()来实现.但是测试的时候发现打开的链接被浏览器拦截. 之后,开始在网上查 ...
- 如何设置html中img宽高相同-css
最近项目中有一个问题,做一个响应式的盒子,随着屏幕的变化, 宽高一直保持相等,之前一直使用js动态设置,获取盒子的宽度来设置盒子高度. 但是加载时样式显示不是很好,后来直接用css实现. html部分 ...
- poj 1797 Heavy Transportation(最大生成树)
poj 1797 Heavy Transportation Description Background Hugo Heavy is happy. After the breakdown of the ...
- Linux高性能server编程——信号及应用
信号 信号是由用户.系统或者进程发送给目标进程的信息.以通知目标进程某个状态的改变或系统异常. Linux信号可由例如以下条件产生: 对于前台进程.用户能够通过输入特殊的终端字符来给它发送信号. ...
- 最重要的 Java EE 最佳实践
參考:IBM WebSphere 开发人员技术期刊: 最重要的 Java EE 最佳实践 IBM WebSphere 开发人员技术期刊: 最重要的 Java EE 最佳实践 2004 年 IBM® W ...