《php开发典型模块大全》读书笔记 第四章 smarty (张迅雷闪击PHP系列)

《php开发典型模块大全》读书笔记 第四章 smarty (张迅雷闪击PHP系列)
下载地址  http://www.smarty.net/download

测试使用的是Smarty-2.6.26\libs
公用的smarty类库和相关信息,将smarty放在服务器根目录下,配置信息写在一个文件中,用的时候include下配置文件。
smarty的变量有以下三部分:

a  来自php页面中的变量,即assign()方法传过来的变量;
在tpl模板中获取数组的值,两个方法    $arr[0] / 或者 $arr.name

b 保留变量,相当于php中的预定义变量
  get  post  server  Session  Cookie  request  ;now;const;config

{%*  注释 *%}
使用“#”,将变量名置于两个"#"中,就可以像普通变量一样调用配置文件内容了。
保留变量同时调用,在tpl文件中加载配置文件 {% config_load file="04/04.conf" %}
 {% config_load file="04/04.conf"  [section=section  scope=local|parent|global] %}
variable  modifers  修饰变量
{% variable_name|modifer_name:parameter1:.... %}


内置函数:

config_load

foreach
  使用foreach语句循环输出数组。


{% foreach key=key item=item from=$infobook %}
{% $key %} => {% $item %}

{% /foreach %}

include
{% include file='08/table.tpl' name='编程词典网' value='htt://www.mrbccd.com1' %}

insert
用法与include相似,两者的区别是:使用insert函数载入的内容部会被缓存,每次开启页面都会重新被执行。

{% if $smarty.get.type == 'mr' %}
欢迎光临,{% $smarty.get.type %}
{% else %}
对不起,您不是本站VIP,无权访问此栏目。
{% /if %}


section循环可以处理比较复杂的数组
{% section name=sec1 loop=$obj %}
   
        {% $obj[sec1].bigclass %}
   
    {% section name=sec2 loop=$obj[sec1].smallclass %}
   
         
        {% $obj[sec1].smallclass[sec2].s_type %}
   
    {% /section %}
{% /section %}

 

void append() 向数组中追加元素
void clear_all_assign() 清楚所有模板中的赋值
void clear_assign(string  var)清除乙肝制定的赋值
void config_load()加载配置文件  
string  fetch(string  template) 返回模板的输出内容,但不直接显示出来;
array  get_config_vars()返回指定配置变量的值,如果没有参数,则返回一个所有配置变量的数组;

array  get_template_vars()返回指定模板变量的值,如果没有参数,则返回一个所有模板变量的数组;

bool  template_exists(string  template)  检测制定的模板是否存在


缓存默认是3600秒,即1小时。


addslashes()  在操作数据库时,对其中的特殊字符进行自动转义,即在特殊字符前加反斜杠,包括单引号‘ 双引号“  NULL,但是不包括%  和_
另外还可以 mysql_real_escape_string()来进行转义,效果和addslashes()函数式一样的。

你可能感兴趣的:(smarty)