关于PHP模板Smarty的初级使用方法以及心得分享

至于怎么配置,这里就不用多说了,网上一大堆。
1.基本上要用到的最主要的方法就是assign和display方法。
2.基本上在页面上要用到的知识就是if和foreach和section这三个。
3.基本上最难的就是foreach和section。
4.初学的时候老是循环不出自己想要的数据。因为感觉还是跟php啊java啊这些的foreach和for都有些差别的。很难抓住他的活动路径,很难调试他的数据。
5.所以这里,我把一点点经念放出来:
如果数据是这样:


代码如下:

array(0=>array('id'=>'1111','content'=>'2222'));那么foreach循环
{{foreach from=$exam item=item key=k}}
{{$item.content}}
{{/foreach}}

就可以了,但是如果是array('id'=>'1111','content'=>'2222')这样,就不可以这样循环了,需要这样:


代码如下:

{{foreach from=$exam item=item key=k}}
{{if $k eq 'content'}}
         {{$item}}
{{/if}}
{{/foreach}}

这里如果不了解eq是什么意思,可以网上搜下,下面我把这个给稍微罗列下:
eq相等,
ne、neq不相等,
gt大于,
lt小于,
gte、ge大于等于,
lte、le 小于等于,
not非, mod求模。
is [not] div by是否能被某数整除,
is [not]even是否为偶数,
$a is [not] even by $b即($a / $b) % 2 == 0,
is [not] odd是否为奇

6.在smarty的模板里面如果要使用php代码,这样:
{{php}}$a = "gayayang"; echo $a;{{/php}}
这样就可以在模板里面使用php代码了。

7.在smarty里面引用文件:
可以用上面的办法:{{php}}include "config.php";{{/php}}
或者专业一点:{{include file="config.php"}}
两个方法都可以实现。下面的比较专业点,推荐。

8.有个这样的方法:$smarty->fetch("mytemplate.html");
fetch和display都是渲染模板用的.fetch可以将渲染后的整个模板以字符串的形式赋值给一个变量,可以用作生成静态页用

现在知道这个怎么用了吧,他可以返回文件的内容给一个变量,那这个就非常有用咯。呵呵
使用fetch函数,你可以将要输出的html赋值给一个变量,可以对里面的数据进行一些输出,再将他输出。
smarty中的display方法,实际上调用的就是fetch,只不过是直接将他显示出来而已,而fetch默认是不显示,返回给一个变量的。

基本上也就这么些了,以后有补充了再来写吧。呵呵

(0)

相关推荐

  • 在smarty中调用php内置函数的方法

    相信有很多朋友还不知道,可以在smarty模板里调用php的内置函数,我们一起来看看它的用法. 模板书写: {'param1'|functionName:'param2':'param3'} php函数原型: echo functionName('param1','param2','param3'); 实例: {'1234567'|substr:'1':'2'} 下面这个和函数的参数顺序有关系 {'a'|str_replace:'A':'abcd'} 直接延伸到,直接在php中写一个函数调用,不

  • 在smarty模板中使用PHP函数的方法

    sample1 复制代码 代码如下: <{$colname|trim}> 那如果使用像iconv这样的有三个参数的函数该怎么写呢?如果写成: sample 2 复制代码 代码如下: <{$colname|iconv:'utf-8':'gbk'}> 一执行就会发现显示error信息. 因此研究一下就会发现,起始在smarty模板页的套用函数用法中,以smaple 1来说,trim的前面$Row->colname其实就是trim的第一个参数,中间用|这个符号串接: 那假设要使用像

  • 探讨Smarty中如何获取数组的长度以及smarty调用php函数的详解

    Smarty中如何获取数组的长度 前提假设:分配了一个数组array给Smarty,假设Smarty的分界符为'{' 和'}'.在很多资料上都看到,在Smarty中要求数组的长度时,可以用在数组后便加|count的方法调用.即通过{array|count}获得array的长度.但是今天在写模板时,发现这样得不到数组的长度,而只是得到一个返回的字符串Array.也就是说仅仅是返回了{array}的结果,而没有返回其array的长度. 查看smarty\plugins文件夹,发现并没有count的相

  • PHP 基于Yii框架中使用smarty模板的方法详解

    第一种方法按照YII系统的办法生成视图觉得有点麻烦,觉得用smarty更省事.尝试着把smarty模板加进来了. 复制代码 代码如下: date_default_timezone_set("PRC");class PlaceController extends CController {protected $_smarty;function __construct(){parent::__construct('place');//需要一个参数来调用父类的构造函数,该参数为控制器ID$p

  • php smarty 二级分类代码和模版循环例子

    二级分类的数据表结构如下: 复制代码 代码如下: PHP代码如下 /** @ 文章分类 含二级分类 @ param int $rootnum -- 一级分类数量 @ param int $childnum -- 二级分类数量 @ 返回值 array @ date 2011.2.24 */ function temp_articletreecate($rootnum,$childnum){ if(!isnumber($rootnum)){ $rootnum = 10; } if(!isnumber

  • php中Smarty模板初体验

    下面介绍一下Smarty模板引擎的特性: 1. 速度:采用Smarty编写的程序可以获得最大速度的提高,这一点是相对于其它的模板引擎技术而言的. 2. 编译型:采用Smarty编写的程序在运行时要编译成一个非模板技术的PHP文件,这个文件采用了PHP与HTML混合的方式,在下一次访问模板时将WEB请求直接转换到这个文件中,而不再进行模板重新编译(在源程序没有改动的情况下) 3. 缓存技术:Smarty选用的一种缓存技术,它可以将用户最终看到的HTML文件缓存成一个静态的HTML页,当设定Smar

  • 模板引擎smarty工作原理以及使用示例

    模板引擎是用于把模板文件和数据内容合并在一起的程序,便于网站开发有利于代码分离和维护,了解一个模板最好知道其工作原理,以便于实现一通万通. 模板文件一般是HTML xml js等类型文件,如果不用模板引擎若要把数据显示在网页上,我们需要在php中输出HTML,而使用模板则只要把数据交给模板引擎程序即可,然后告诉它用哪个模板文件,自然就会把数据和页面结合以后返回或输出,模板至少有以下功能1.把数据提供给模板引擎的功能.2.指定模板的功能.3.输出结果的功能.一般来说为了方便程序员们使用模板引擎,开

  • php smarty截取中文字符乱码问题?gb2312/utf-8

    一般网站页面的显示都不可避免的会涉及子字符串的截取,这个时候truncate就派上用场了,但是它只适合英文用户,对与中文用户来说,使用 truncate会出现乱码,而且对于中文英文混合串来说,截取同样个数的字符串,实际显示长度上却不同,视觉上会显得参差不齐,影像美观.这是因为一个中文的长度大致相当与两个英文的长度.此外,truncate也不能同时兼容GB2312, UTF-8等编码. 改良的smartTruncate: 文件名:modifier.smartTruncate.php 复制代码 代码

  • 基于PHP Web开发MVC框架的Smarty使用说明

    一.Smarty简明教程 1.安装演示 下载最新版本的Smarty-3.1.12,然后解压下载的文件.接下来演示Smarty自带的demo例子. (1)下载地址:http://www.smarty.net/download(2)在你的WEB服务器根目录下建立新目录,这里我在/var/www下创建yqting/目录,然后将解压之后的目录中的demo/和libs/目录复制到/var/www/yqting/目录下. (3)这里要特别注意demo/目录下cache/和template_c/两个目录,一定

  • php使用Smarty的相关注意事项及访问变量的几种方式

    $tpl=new Smarty();//新建一个smarty对象,我使用的是Smarty-3.1.6版本1.设置smarty模板路径$tpl->setTemplateDir():默认情况下是templates2.设置smarty模板编译路径$tpl->setCompileDir();默认情况下是templates_c3.设置smarty模板引擎的左右 分隔符, $tpl->left_delimiter="<{";        $tpl->right_de

  • smarty实现PHP静态化的两种方法分享

    方法一: 复制代码 代码如下: <?php require_once("./config/config.php"); ob_start(); $id=$_GET[id]; $sql="select * from table_name where id='$id'"; $result=mysql_query($sql); $rs=mysql_fetch_object($result); $smarty->assign("showtitle&quo

随机推荐