当前位置:  编程技术>php
本页文章导读:
    ▪SMARTY学习手记       学习PHP不能不提下SMARTY,作为著名的模板程序,SMARTY自然有其优势。下面是我总结的自己的一点学习心得吧! ==================================.........
    ▪笑谈配置,使用Smarty技术       Smarty技术是PHP的精髓所在,随着PHP版本的逐渐提高,原来的很多方法也许太过时了,下面我就针对最新的PHP5.1.1版本的使用,配置说说如何配置.  下面是一步步的来的,请注意:  1: 在官方下载模.........
    ▪Smarty模板快速入门       在PHP的世界里已经出现了各式各样的模板类,但就功能和速度来说Smarty还是一直处于领先地位,因为Smarty的功能相对强大,所以使用起来比其他一些模板类稍显复杂了一点。现在就用30分钟.........

[1]SMARTY学习手记
    来源: 互联网  发布时间: 2013-11-30
学习PHP不能不提下SMARTY,作为著名的模板程序,SMARTY自然有其优势。下面是我总结的自己的一点学习心得吧!
=====================================
先在smarty.php.net下载最新smarty
将libs文件夹放在你的WEB目录下,我是放在smarty下的,目录情况如下:e:/smarty/libs
在smarty目录下新建如下文件夹:
templates(这里放你的模板文件,即tpl文件)
configs
templates_c(自动将编译完的文件转成PHP放在这)
cache
然后在wwwroot目录下建立index.php:
<?php 
include "smarty/libs/Smarty.class.php"; 
define('__SITE_ROOT', 'e:/smarty'); // 最後沒有斜線 
$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 = '}>'; 
$tpl->assign('name','world!'); 
$tpl->display('index.tpl')
?> 

在template目录下建立index.tpl:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<html> 
<head> 
<title> New Document </title> 
<meta name="Generator" content="EditPlus"> 
<meta name="Author" content=""> 
<meta name="Keywords" content=""> 
<meta name="Description" content=""> 
</head> 

<body> 
hello,{$name}~. 
</body> 
</html> 



然后本地index.php显示出hello,world!~.

    
[2]笑谈配置,使用Smarty技术
    来源: 互联网  发布时间: 2013-11-30
Smarty技术是PHP的精髓所在,随着PHP版本的逐渐提高,原来的很多方法也许太过时了,下面我就针对最新的PHP5.1.1版本的使用,配置说说如何配置. 

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

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

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

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

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

4:建立文件 text.htm: 
代码如下:
<html>  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">  
<title><{$title}></title>  
</head>   
<body>  
<{$content}>  
</body>  
</html> 

保存在 templates 目录下面. 
5:然后建立文件模板配置文件: config.php
代码如下:
<?php   
    include "../libs/Smarty.class.php";   
 $NowPathArray=explode("test",str_replace("\\","/",dirname(__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文件,输入: 
代码如下:
<?php   
    require "config.php";   
    $tpl->assign("title", "测试成功了,这是标题");   
    $tpl->assign("content", "这是内容");   
    $tpl->display('test.htm');   
?> 

7:在浏览器测试test.php显示为: 

这是内容

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

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

; Windows: "path1;path2"
include_path = ".;c:phpincludes"

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

    
[3]Smarty模板快速入门
    来源: 互联网  发布时间: 2013-11-30
在PHP的世界里已经出现了各式各样的模板类,但就功能和速度来说Smarty还是一直处于领先地位,因为Smarty的功能相对强大,所以使用起来比其他一些模板类稍显复杂了一点。现在就用30分钟让您快速入门。

  一. 安装

    首先打开网页http://smarty.php.net/download.php,下载最新版本的Smarty。解压下载的文件(目录结构还蛮复杂的)。接下来我演示给大家一个安装实例,看过应该会举一反三的。
    (1) 我在根目录下建立了新的目录learn/,再在learn/里建立一个目录smarty/。将刚才解压缩出来的目录的libs/拷贝到smarty/里,再在smarty/里新建templates目录,templates里新建cache/,templates/,templates_c/, config/.

    (2) 新建一个模板文件:index.tpl,将此文件放在learn/smarty/templates/templates目录下,代码如下: 
代码如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
<html>  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">  

<title>Smarty</title>  
</head>  
<body>  
{$hello}  
</body>  
</html> 




新建index.php,将此文件放在learn/下: 
代码如下:
<?php  
//引用类文件  
require 'smarty/libs/Smarty.class.php';  

$smarty = new Smarty;  

//设置各个目录的路径,这里是安装的重点  
$smarty->template_dir = "smarty/templates/templates";  

$smarty->compile_dir = "smarty/templates/templates_c";  

$smarty->config_dir = "smarty/templates/config";  
$smarty->cache_dir = "smarty/templates/cache";   

   
//smarty模板有高速缓存的功能,如果这里是true的话即打开caching,但是会造成网页不立即更新的问题,当然也可以通过其他的办法解决  
$smarty->caching = false;  

$hello = "Hello World!";  
//赋值  
$smarty->assign("hello",$hello);  

//引用模板文件  
$smarty->display('index.tpl');  

?>
 



(3) 执行index.php就能看到Hello World!了。

  二. 赋值

       在模板文件中需要替换的值用大括号{}括起来,值的前面还要加$号。例如{$hello}。这里可以是数组,比如{$hello.item1},{$hello.item2}…
       而PHP源文件中只需要一个简单的函数assign(var , value)。
       简单的例子:
       *.tpl:
       Hello,{$exp.name}! Good {$exp.time}

       *.php:
       $hello[name] = “Mr. Green”;

       $hello[time]=”morning”;
       $smarty->assign(“exp”,$hello);

       output:
       Hello,Mr.Green! Good morning

三. 引用
       网站中的网页一般header和footer是可以共用的,所以只要在每个tpl中引用它们就可以了。
       示例:*.tpl:
    {include file="header.tpl"}

       {* body of template goes here *}

       {include file="footer.tpl"}

  四. 判断
       模板文件中可以使用if else等判断语句,即可以将一些逻辑程序放在模板里。"eq", "ne", "neq", "gt", "lt", "lte", "le",  "gte"  "ge", "is even", "is odd", "is not even", "is not odd", "not", "mod", "div by", "even by", "odd by","==","!=",">", "<","<=",">="这些是if中可以用到的比较。看看就能知道什么意思吧。

      示例:
      {if $name eq "Fred"}

                     Welcome Sir.

    {elseif $name eq "Wilma"}

                     Welcome Ma'am.   


    {else}
                     Welcome, whatever you are.

    {/if}


  五. 循环

       在Smarty里使用循环遍历数组的方法是section,如何赋值遍历都是在模板中解决,php源文件中只要一个assign就能解决问题。
       示例:
{* this example will print out all the values of the $custid array *}

{section name=customer loop=$custid}

              id: {$custid[customer]}<br>
{/section}

OUTPUT:

id: 1000<br>
id: 1001<br>
id: 1002<br>

  六. 常见问题

       Smarty将所有大括号{}里的东西都视为自己的逻辑程序,于是我们在网页中想插入javascript函数就需要literal的帮忙了,literal的功能就是忽略大括号{}。
       示例:
{literal} 
       <script language=javascript> 

             function isblank(field) { 

                       if (field.value == '')  
                               { return false; } 

                       else 
                               { 

                               document.loginform.submit(); 
                               return true; 

                               } 

             } 

       </script> 
{/literal} 

    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3