我使用并不能说明他就是好。主要原因是他很小巧。目前尚未看到smartTemplate的中文手册,英文的好象也没有。大概是因为太简单了,没有写手册的必要吧下载的smartTemplate包中是包含示例的
解决方案 »
- imagettfbbox 计算宽高
- 像这种微博指数、微博价值测试的网站他是怎么弄的.www.weibozhishu.com它不但能测试sina,qq ,sohu,求教
- 请问一个利用正则来替换html段的问题。
- 配置PHP5+APACHE2.2,竟然打不开php页面,而是下载,这是为什么?
- 如何保留CDATA编辑XML节点中的值???
- 回答一个100分!!!大家帮忙下
- php关于字符设置的一个问题?
- php+apache环境下,域名重写的问题
- socket的timeout问题
- php接口使用phpmailer发送带附件的邮件时,处理太慢怎么办?
- 在linux9+php4+apache+mysql下GD可以读取图片文件,但不能写入,请问原因。
- ◆◇php和数据库之间的中间层的开发!!有谁做过,进来聊聊△▲
网上有个高人的学习笔记,搜索一下有可以找到!!
具体语法如下
assign ( 模版中的变量, 要替换的内容 )
或
assign ( Array内容 ) 正如其他程序的变量一样,smartTemplate的变量是由特殊的{}所包含的。里面的内容可以是String,Array,Int,或者是Long Text等等(基本上php支持的) 在储存Array数据时,smartTemplate运用了我们常见的父子级分割符".",所以一个特殊的Array数据由Array Handle和具体位置的索引组成(Numerical Index or Associative Index)。
下面是一个例子 在php环境下运行以下程序
代码:
<?php $template = new SmartTemplate('template.html'); $text = 'Sample Text';
$template->assign( 'TITLE', $text ); $template->output(); ?>
模版
代码:
<html> {TITLE} </html>
输出
代码:
<html> Sample Text </html> 在只有一个Array的情况下,可以直接省略前面的array handle,就象在使用javascript时,document.window.close()可以省略为window.close() php
代码:
<?php $user = array(
'NAME' => 'John Doe',
'GROUP' => 'Admin',
'AGE' => '42',
); $template = new SmartTemplate('user.html'); $template->assign( $user ); $template->output(); ?>
模版
代码:
Name: {NAME}
Group: {GROUP}
Age: {AGE}
输出
代码:
Name: John Doe
Group: Admin
Age: 42
下面是另外一个例子。使用了SmartTemplate的循环函数<!-- begin Array名 -->XXXXXX<!-- end Array名>
他的功能类似foreach(),只要有东西,就一直循环显示
代码:
<?php $links = array(
array(
'TITLE' => 'PHP',
'URL' => 'http://www.php.net/',
),
array(
'TITLE' => 'Apache',
'URL' => 'http://www.php.net/',
),
array(
'TITLE' => 'MySQL',
'URL' => 'http://www.mysql.com/',
),
); $template = new SmartTemplate('links.html');
$template->assign( 'links', $links );
$template->output(); ?>
HTML模版
代码:
<html>
<h3> Sample Links </h3> <!-- BEGIN links --> <a href="{URL}"> {TITLE} </a> <!-- END links --> </html>
代码:
<html>
<h3> Sample Links </h3> <a href="http://www.php.net/"> PHP </a> <a href="http://www.apache.org/"> Apache </a> <a href="http://www.mysql.com/"> MySQL </a> </html>
3、SmartTemplate的逻辑控制结构 ★If和end If 语法:
<!-- IF 变量 --> 变量已被赋值! <!-- ENDIF 变量 -->
如果IF后面直接跟变量,变量为Null时会返回0,否则返回1 <!-- IF name=="John Doe" --> Your name is John Doe! <!-- ENDIF name -->
==判断是否相等,如果相等返回1,不相等返回0 <!-- IF name!="John Doe" --> Your name is not John Doe! <!-- ENDIF name -->
!=判断是否不等,如果成立返回1,相等则返回0 例子:
PHP 代码:
<?php require_once "class.smarttemplate.php";
$page = new SmartTemplate("if.html"); $page->assign( 'username', 'John Doe' );
$page->assign( 'usergroup', 'ADMIN' );
$page->assign( 'picture', '' ); $page->output(); ?>
HTML
代码:
<!-- IF username --> <H3> Welcome, {username} </H3> <!-- ENDIF -->
<!-- IF picture --> <img src="{picture}"> <!-- ENDIF picture -->
<!-- IF usergroup="ADMIN" --> <a href="admin.php"> ADMIN Login </a><br> <!-- ENDIF usergroup --> 输出代码:
<H3> Welcome, John Doe </H3>
<a href="admin.php"> ADMIN Login </a><br>
★IF的子局 else
如果else子句出现在一个逻辑循环中,当if的条件不成立时则会被运行。
例子
代码:
<?php require_once "class.smarttemplate.php";
$page = new SmartTemplate("else.html"); $page->assign( 'username', 'John Doe' );
$page->assign( 'usergroup', 'ADMIN' );
$page->assign( 'picture', '' ); $page->output(); ?>
模版 代码:
<!-- IF username --> <H3> Welcome, {username} </H3> <!-- ENDIF --> <!-- IF picture --> <img src="{picture}"> <!-- ELSE --> Picture not available! <br> <!-- ENDIF picture --> <!-- IF usergroup="ADMIN" --> <a href="admin.php"> ADMIN Login </a><br> <!-- ELSE --> You are in guest mode! <!-- ENDIF usergroup -->
输出 代码:
<H3> Welcome, John Doe </H3> Picture not available! <br> <a href="admin.php"> ADMIN Login </a><br> ★elseif
elseif是else和if组合起来的一种结构,其意义为"除此之外如果..."
以下是一个例子
代码:
<?php require_once "class.smarttemplate.php";
$page = new SmartTemplate("elseif.html"); $page->assign( 'usergroup', 'INTERNAL' ); $page->output(); ?>
模版文件
代码:
<!-- IF usergroup="ADMIN" --> <a href="admin.php"> 管理员登陆 </a><br> <!-- ELSEIF usergroup="SUPPORT" --> <a href="support.php"> 帮助人员登陆</a><br> <!-- ELSEIF usergroup --> <a href="other.php"> 普通方式登陆 </a><br> <!-- ELSE --> You don't even have a usergroup! <!-- ENDIF -->
运行php得到的输出
代码:
<a href="other.php"> 普通方式登陆 </a><br>
ROWCNT : 此元素在父矩阵中的具体位置 (0,1,2,3,...n) (就是目前在第几个矩阵)
ROWBIT : 矩阵序号的最后一位. (0,1,0,1,0,1,...) 下面是一个例子 PHP代码: 代码:
<?php require_once "class.smarttemplate.php";
$page = new SmartTemplate("begin_end.html"); $users = array(
array( 'NAME' => 'John Doe', 'GROUP' => 'ADMIN' ),
array( 'NAME' => 'Jack Doe', 'GROUP' => 'SUPPORT' ),
array( 'NAME' => 'James Doe', 'GROUP' => 'GUEST' ),
array( 'NAME' => 'Jane Doe', 'GROUP' => 'GUEST' ),
); $page->assign( 'users', $users ); $page->output(); ?>
HTML模版 代码:
<style type="text/css">
.col0 { background-color: #D0D0D0; }
.col1 { background-color: #F0F0F0; }
</style> <table border="1" cellpadding="2" cellspacing="0">
<tr>
<th> No </th>
<th> Username </th>
<th> Usergroup </th>
</tr> <!-- BEGIN users --> <tr class="col{ROWBIT}">
<td> {ROWCNT} </td>
<td> {NAME} </td>
<td> {GROUP} </td>
</tr> <!-- END users --> </table> 最后的输出
代码:
<style type="text/css">
.col0 { background-color: #D0D0D0; }
.col1 { background-color: #F0F0F0; }
</style> <table border="1" cellpadding="2" cellspacing="0">
<tr>
<th> No </th>
<th> Username </th>
<th> Usergroup </th>
</tr>
<tr class="col0">
<td> 0 </td>
<td> John Doe </td>
<td> ADMIN </td>
</tr>
<tr class="col1">
<td> 1 </td>
<td> Jack Doe </td>
<td> SUPPORT </td>
</tr>
<tr class="col0">
<td> 2 </td>
<td> James Doe </td>
<td> GUEST </td>
</tr>
<tr class="col1">
<td> 3 </td>
<td> Jane Doe </td>
<td> GUEST </td>
</tr>
</table>
☆smartTemplate的方法 注:以下列出的方法并不会在模版设计中出前,他们属于smartTemplate的代码编辑部分,但是如果为了实现更深一步的模版设计,下面的内容是肯定有用的. ★基础方法:assign (中文意思:赋值) 语法:
assign ( 变量名, 混合内容 ) 或者 assign ( 矩阵变量 ) 更多介绍在变量介绍部分 ★Append(附加)
语法:append ( 变量名, 内容 ) 对所提供的变量附加提供的内容 例子:
代码:
<?php $page = new SmartTemplate('links.html'); $page->append('links' => array(
'TITLE' => 'PHP',
'URL' => 'http://www.php.net/'
));
$page->append('links' => array(
'TITLE' => 'Apache',
'URL' => 'http://www.apache.org/'
));
$page->append('links' => array(
'TITLE' => 'MySQL',
'URL' => 'http://www.mysql.com/'
));
$page->output(); ?>
模版 代码:
<html>
<h3> Sample Links </h3> <!-- BEGIN links --> <a href="{URL}"> {TITLE} </a> <!-- END links --> </html>
最终输出 代码:
<html>
<h3> Sample Links </h3> <a href="http://www.php.net/"> PHP </a> <a href="http://www.apache.org/"> Apache </a> <a href="http://www.mysql.com/"> MySQL </a> </html>
另外一个附加字符串的例子: 代码:
<?php $page = new SmartTemplate('template.html'); $page->append('TITLE' => 'Hello ');
$page->append('TITLE' => 'World ');
$page->append('TITLE' => '!'); $page->output(); ?>
输出将会得到 代码:
<html> Hello World ! </html>
$_CONFIG['reuse_code'] = false;
$_CONFIG['template_dir'] = TEMPLATE_PATH;//模板路径
$_CONFIG['smarttemplate_compiled'] = TEMP_PATH;//编译后的文件路径
$_CONFIG['smarttemplate_cache'] = CACHE_PATH;//缓存文件路径
$_CONFIG['cache_lifetime'] = 30*60*60*24; //缓存一天