在php中配置使用smarty模板引擎

Smarty是php的半官方模板引擎,从其主页位置就可以看出。使用简单,功能强大,本文就介绍一下smarty模板的安装和使用。

Smarty技术是PHP的精髓所在,随着PHP版本的逐渐提高,原来的很多方法也许太过时了,下面我就针对最新的PHP5.1.1版本的使用,配置说说如何配置. 

1) 现在模板的安装包,解压到根目录外的某个位置,比如解压到c:phpLibsmarty

下面是一步步的来的,请注意: 

2)修改php.ini文件,配置include_path。
如此文中的配置为:include_path=c:phpLibsmartylibs

1: 在官方下载模板库文件: http://smarty.php.net/download.php 

注意,要把include_path前的分号去掉

下载了就解压,看见一个文件夹了,是个 smarty.x.x,打开,里面有个libs 文件夹,ok,注意这个东西就是我们要的. 

3) 创建存放模板文件和配置文件的四个目录

2: 在你的网站目录下面,比方我的php网站IIS在物理硬盘的 d:/web/web/php下面,在这个文件夹下面建立:一个文件夹 test,然后我们把刚提到的 libs文件夹复制道test 文件夹下面.{ * 请看本文最后的注释 TIPS1} 

templates 存放模板文件的目录

3:在test 文件夹下面再建立4个文件夹; 
cache 
configs 
templates 
templates_c 

template_c 防止smarty编译的模板文件

4:建立文件 text.htm:  复制代码 代码如下:  

configs 放置专用的配置文件目录

  

cache 在启用缓存的情况下,放置smarty缓存的所有文件

  

4)在php脚本使用smarty模板前,先制定上述四个目录的位置:

  
   
  
  
  
 
保存在 templates 目录下面. 
5:然后建立文件模板配置文件: config.php
复制代码 代码如下:

?php

    include “../libs/Smarty.class.php”;   
 $NowPathArray=explode(“test”,str_replace(“\”,”/”,dirname(apizl_file))) ;  
    @define(“root_path”, $NowPathArray[0]);  
    @define(‘__SITE_ROOT’, root_path.”test”);   
    $tpl = new Smarty();   
    $tpl->template_dir = __SITE_ROOT . “/templates/”;   
    $tpl->compile_dir = __SITE_ROOT . “/templates_c/”;   
    $tpl->config_dir = __SITE_ROOT . “/configs/”;   
    $tpl->cache_dir = __SITE_ROOT . “/cache/”;   
    $tpl->left_delimiter = ‘    $tpl->right_delimiter = ‘}>’;   
?>  
保存在主目录也就是 test下面. 
6 :在test新建文件test.php文件,输入: 
复制代码 代码如下:

$smarty = new Smarty;$smarty-template_dir =
templates;$smarty-compile_dir = template_c;$smarty-config_dir =
configs;$smarty-cache_dir = cache;

    require “config.php”;   
    $tpl->assign(“title”, “测试成功了,这是标题”);   
    $tpl->assign(“content”, “这是内容”);   
    $tpl->display(‘test.htm’);   
?> 
7:在浏览器测试test.php显示为: 

?

这是内容

完成上述四个步骤后,就可以使用smarty模板了

恭喜,配置成功.否则,失败,再检查是不是按照我说的来的. 

Tips1 :为了能在网站全局使用Smarty技术,我们可以修改PHP.inc里面的 
**

; Windows: “path1;path2”
include_path = “.;c:phpincludes”

** 
改为: 
——————-> 
; Windows: “path1;path2”
include_path = “.;c:phpincludes;d:webwebphplibs”
使用模板的时候,像前面一样的方式使用,不要
include “../libs/Smarty.class.php”; 
直接使用就行了的.

发表评论

电子邮件地址不会被公开。 必填项已用*标注