在模板中输出动态数据可以用{},所以容易与css中的标签相互冲突,所以使用{literal}{/literal}标签包起来就不会用模板的解析方式解析,变量的来源有三种,用assign方法赋值,系统保留变量,配置文件中的变量
使用地址栏中的数据,也是$_GET的数据,可以用$smarty.get.变量名 来获取,定义常量可以用$smarty.const.常量名来获取
获取配置文件中的数据,配置文件中的数据格式key=value,一行一条数据,首先在控制页面中引入这个文件,用$smarty->config_dir='';值是配置文件相对于这个控制页面的相对位置,在html页面中{config_load file=''}file值是配置文件相对于这个显示页面的位置,然后用$smarty.config.配置名 进行输出
进行数据运算就在{}标签中直接进行运算
如果有多个相同的值,如果用assign方法进行赋值,就会将之前的重名变量进行重新赋值,之前的值被覆盖,可以用append方法进行赋值,参数和assign一样,如果不存在同名变量,和assign的作用一致,如果存在,就把这个变量变成数组,再将这个值追加最最后的位置
控制页面01.php
<?php //引入smarty文件 require('../../smarty3/libs/smarty.class.php'); //实例化 $smarty=new Smarty(); // print_r($smarty);调试成功 //配置 //$smarty->template_dir='./temp'; //$smarty->compile_dir='./comp'; $smarty->setTemplateDir('./temp'); $smarty->setCompileDir('./comp'); // 赋值 $smarty->assign('name','张三'); //定义数组,传数组 $arr=array('name'=>'李四','age'=>14); $smarty->assign('arr',$arr); //定义常量 define('HEI',8889); //引入配置文件 $samarty->config_dir='./config.php'; $smarty->display('01.html'); ?>
渲染页面01.html
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Smarty模板的使用</title> <style> {literal}p{ background:green; } {/literal} </style> </head> <body> 下面输出姓名:<br/> <p>{$name}</p> 下面输出数组中的内容:<br/> <p>姓名是:{$arr.name},年龄{$arr.age}</p> 接收地址栏的信息<br/> <p>这是第{$smarty.get.id}号</p> 输出常量的值<br/> <p>{$smarty.const.HEI}米</p> 引入配置文件<br/>{config_load file='../config.php'} <p>id是{$smarty.config.id},名字是{$smarty.config.name},uri是{$smarty.config.uri}</p> </body> </html>
配置文件config.php,名字随意起
id=1233 name=你是你谁 uri=当前文件夹