Smarty中的标签和php中的标签不一样
foreach标签{foreach from=$goods(变量名) key='键,不带$' item='值,不带$'}中间的显示内容{/foreach}
section标签{section loop=$goods变量名 name=临时角标} 显示内容$goods[临时角标].goods_id{/section}
while循环标签{while $age<18}中间是显示内容,$age要进行运算,否则将是死循环{/while}
封装类mySmarty.php
<?php //将smarty的配置信息封装成类 class mySmarty extends Smarty{ public function __construct(){ parent::__construct();//首先调用父类的构造函数 $this->template_dir='./temp';//显示文件的目录 $this->compile_dir='./comp';//编译好的文件目录 } } ?>
控制页面01.php
<?php //引入Smarty类 require('../../smarty3/libs/Smarty.class.php'); //引入封装的子类 require('./mySmarty.php'); $mysm=new mySmarty(); $conn=mysql_connect('localhost','root','111111'); mysql_query('use boolshop',$conn);//选库 mysql_query('set names utf8',$conn);//设置编码 $sql='select goods_id,goods_name,goods_number,shop_price from goods limit 5'; $rs=mysql_query($sql,$conn); $arr=array(); while(($row=mysql_fetch_assoc($rs))!==false){ $arr[]=$row; } //print_r($arr); $mysm->assign('goods',$arr); //定义一个年龄属性 $mysm->assign('age',16); //传当前时间的时间戳 $mysm->assign('time',time()); $mysm->display('01.html'); ?>
01.html
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>显示数据</title> <style type="text/css"> {literal} p{ font-size:25px; background:green; } {/literal} </style> </head> <body> 用foreach遍历数组<br/> {foreach from=$goods key='key' item='v'} <p> id号:{$v['goods_id']},商品名字:{$v['goods_name']},商品价格{$v['shop_price']},商品储存量 {$v['goods_number']} </p> {/foreach} 用section遍历数组<br/> {section loop=$goods name=g} <p> id号:{$goods[g]['goods_id']},商品名字:{$goods[g]['goods_name']},商品价格{$goods[g]['shop_price']},商品储存量 {$goods[g]['goods_number']} </p> {/section} 使用while循环<br/> {while $age<18} 你{$age++}岁了,还没有成年。 {/while} 格式化时间戳<br/> 当前时间是{$time|date_format:'%Y-%m-%d %H:%M:%S'} </body> </html>