夺命雷公狗---Smarty NO:23 常用方法

  • assign :分配变量到模板文件(值传递)
  • assignByRef:分配变量到模板文件(引用传递)

assignByRef代码示例:

$smarty = new Smarty();
$name = ‘lisi‘;
//$smarty -> assign(‘name’,$name);  值传递相当于把lisi复制一份发送到模板页
$smarty -> assignByRef(‘name’,$name);//引用传递,把$name变量的首地址赋值给模版页
$smarty -> display(‘demo7.html’);

append :分配变量到模板数组变量中

示例:

<?php
require “smarty/Smarty.class.php”;
$smarty = new Smarty();
$city = ‘北京‘;
//通过append方法分配变量到模版文件
$smarty -> append(‘city’,$city);
$smarty -> display(‘demo7.html’);

改写分页程序,如下所示:

$sql = “select id,name,age from stu order by id desc limit $offset,$pagesize”;
$res = mysql_query($sql);
$data = array();
while($arr = mysql_fetch_assoc($res)){
//$data[] = $arr;
$smarty -> append(‘data’,$arr);
}
//通过assign方法分配变量到模版文件
//$smarty -> assign(‘data’,$data);//遍历出来的结果
$smarty -> assign(‘pagecount’,$pagecount);//总页数
  • appendByRef:分配变量到模板数组变量中(引用传递)
  • clearAllAssign:清除所有分配到模板中的变量
  • clearAssign:清除指定的模板变量
  • clearCache:清除缓存
  • configLoad:载入配置文件

引入配置文件如下所示

<?php
require “smarty/Smarty.class.php”;
$smarty = new Smarty();
$smarty -> configLoad(“config.conf”);
$smarty -> display(‘demo7.html’);
  • clearConfig:清除配置变量信息
  • display:显示输出模板信息,如下所示

$smarty -> display(‘demo7.html’);

  • fetch:载入文件到字符串

demo7.php代码示例:

<?php
require “smarty/Smarty.class.php”;
$smarty = new Smarty();
$title = ‘test‘;
$smarty -> assign(‘title’,$title);
$str = $smarty->fetch(‘demo7.html’);
echo $str;

demo7.html代码示例:

<!DOCTYPE html>
<html>
<head>
<meta charset=’utf-8′>
<title></title>
<script src=”jquery.js”></script>
</head>
<body>
{$title}
</body>
</html>

在实际项目开发中,fetch拥有非常广泛的用途,例如静态化技术

//display有两个功能,1.载入到字符串   2.输出字符串echo
$str = $smarty->fetch(‘demo7.html’);

file_put_contents(“html/”.time().’.shtml’,$str);

  • templateExists :判断当前模板文件是否存在

示例代码如下:

<?php
header(“Content-Type:text/html;charset=utf-8″);
require “smarty/Smarty.class.php”;
$smarty = new Smarty();
$title = ‘test‘;
$smarty -> assign(‘title’,$title);
if($smarty->templateExists(“demo79.html”)){
    $smarty -> display(“demo7.html”);
}else{
    echo “系统正在维护中,稍后会为您提供更好的服务…”;
}
时间: 2024-10-10 02:25:21

夺命雷公狗---Smarty NO:23 常用方法的相关文章

夺命雷公狗---Smarty NO:10 foreach数组的遍历

功能:主要实现对数组的遍历输出 基本语法: foreach,foreachelse {foreach from=数组 key=键 name=名称 item=内容 } {foreachelse} {/foreach} from:要遍历输出的数组 item:每次遍历时,系统会自动将遍历的结果放入item内容中 key:键值,每次遍历时,系统会将遍历的键值放入key中 name:foreach名称,为foreach起名 foreachelse:当数组为空时,执行此句 demo4.html示例代码 <!

夺命雷公狗---Smarty NO:17 html_table函数

功能:把简单数组转化table表格 基本语法: {html_table  loop=$data  cols=4  table_attr=’border=”0″‘} 参数说明: loop:要遍历的数组 cols:每行显示多少列 table_attr:表格的属性,多个属性之间通过空格隔开 demo6.html示例代码: <!DOCTYPE html> <html> <head> <meta charset=’utf-8′> <title></t

夺命雷公狗---Smarty NO:18 html_checkboxes

功能:把数组转化为复选框 基本语法: {html_checkboxes name=’cust’  values=$cust_ids  checked=$customer_id  output=$cust_names  separator=”<br />”} 参数说明: name:为checkbox命名 values:为checkbox中的选项赋予value值,要求是一个数组 checked:选中的值,要求是一个数组 output:显示输出的文本值,要求是一个数组 separator:选项与选项

夺命雷公狗---Smarty NO:24 缓存控制技术1

什么是缓存技术 IE缓存:就是把请求的数据放入IE等浏览器中(客户端缓存) HTML+CSS+JS+IMG Smarty缓存:服务器端缓存 2.服务器缓存应用 1)减少服务器I/O 2)减少数据库服务器压力 3)减少服务器访问时间,加快反应速度 编译技术  <  缓存技术  <  静态技术(不方便管理) 3.Smarty缓存机制 $smarty->setCacheDir($cache_dir); //设置缓存目录(默认为cache) $smarty->caching=true; /

夺命雷公狗---Smarty NO:11 内建函数2(sysplugins)

1.php函数 功能:可以实现在模板页面直接输入php代码 基本语法: {php} echo date(“Y-m-d”); {/php} 在Smarty3.0中已废弃,如果想使用此功能,请载入SmartyBC.class.php demo5.html示例代码: <!DOCTYPE html> <html> <head> <meta charset=’utf-8′> <title></title> </head> <b

夺命雷公狗---Smarty NO:21 分页

在smarty里面写一个分页 demo6.php代码示例: <?php header(“Content-Type:text/html;charset=utf-8″); require “smarty/Smarty.class.php”; $smarty = new Smarty(); //连接数据库 mysql_connect(“localhost”,’root’,”); mysql_query(‘use xsphp’); mysql_query(‘set names utf8′); //读取所

夺命雷公狗---Smarty NO:19 html_options函数

功能:把数组转化为option下拉选项 基本语法: <select name=customer_id> {html_options values=$cust_ids  selected=$customer_id  output=$cust_names} </select> 参数说明: output:要遍历输出的数组 values:每一个下拉选项的value值,要求是一个数组 selected:被选中的元素,要求也是一个数组 demo6.html示例代码: <!DOCTYPE

夺命雷公狗---javascript NO:23 JavaScript中的this指针

1.自定义类中的this指针 在php中,我们在自定义类时,属性都是预定义在我们的自定义类中,而在JavaScript代码中,所有对象的属性和方法都是动态添加到对象中,那么可不可以让我们的自定义对象自动拥有类的属性和方法? 答:可以,通过this指针 例1:谁实例化自定义类,那么类中的this就指向谁 <!DOCTYPE html> <html> <head> <meta charset=’utf-8′> <title></title>

夺命雷公狗---Smarty NO:08 if–elseif–else函数

功能:条件判断(分支) 基本语法: {if} {elseif} {else} {/if} demo4.html示例代码: <!DOCTYPE html> <html> <head> <meta charset=’utf-8′> <title></title> </head> <body> {if $i==1} 吃饭 {elseif $i==2} 读书 {elseif $i==3} 敲代码 {else} 睡觉 {