2005-09-07
SmartTemplate学习笔记
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://sunswin.blogbus.com/logs/1417061.html
http://www.smartphp.net/content/smarttempl...bout/about.html
| 目录 1、SmartTemplate的效率 2、基本变量 3、逻辑运算结构 4、模式(Methods) 5、扩展类(Extensions) 未完成 ------------------------------------------------------------------------ 1、SmartTemplate的效率 虽然他有很多的程序来形成强大的功能,但在执行时只有你调用的才被导入,所以不用担心这方面的速度影响,同样这套模版系统是为最快的执行效率而优化过的,比起目前市场上常见的Smarty,要快不少(Smarty采用后期缓存,所以比较可能不是很准确)。 2、SmartTemplate的变量 Array的变量是由SmartTemplate内建函数assign()来赋值的 具体语法如下 assign ( 模版中的变量, 要替换的内容 ) 或 assign ( Array内容 ) 正如其他程序的变量一样,smartTemplate的变量是由特殊的{}所包含的。里面的内容可以是String,Array,Int,或者是Long Text等等(基本上php支持的) 在储存Array数据时,smartTemplate运用了我们常见的父子级分割符".",所以一个特殊的Array数据由Array Handle和具体位置的索引组成(Numerical Index or Associative Index)。 下面是一个例子 在php环境下运行以下程序 代码: $template = new SmartTemplate('template.html'); $text = 'Sample Text'; $template->assign( 'TITLE', $text ); $template->output(); ?> 模版 代码: {TITLE} 输出 代码: Sample Text 在只有一个Array的情况下,可以直接省略前面的array handle,就象在使用javascript时,document.window.close()可以省略为window.close() 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的循环函数XXXXXX {TITLE} 代码: Sample LinksPHP Apache MySQL 3、SmartTemplate的逻辑控制结构 ★If和end If 语法: 变量已被赋值! 如果IF后面直接跟变量,变量为Null时会返回0,否则返回1 Your name is John Doe! ==判断是否相等,如果相等返回1,不相等返回0 Your name is not John Doe! !=判断是否不等,如果成立返回1,相等则返回0 例子: 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 代码: Welcome, {username}ADMIN Login 输出代码: Welcome, John DoeADMIN Login ★IF的子局 else 如果else子句出现在一个逻辑循环中,当if的条件不成立时则会被运行。 例子 代码: require_once "class.smarttemplate.php"; $page = new SmartTemplate("else.html"); $page->assign( 'username', 'John Doe' ); $page->assign( 'usergroup', 'ADMIN' ); $page->assign( 'picture', '' ); $page->output(); ?> 模版 代码: Welcome, {username}Picture not available! ADMIN Login You are in guest mode! 输出 代码: Welcome, John DoePicture not available! ADMIN Login ★elseif elseif是else和if组合起来的一种结构,其意义为"除此之外如果..." 以下是一个例子 代码: require_once "class.smarttemplate.php"; $page = new SmartTemplate("elseif.html"); $page->assign( 'usergroup', 'INTERNAL' ); $page->output(); ?> 模版文件 代码: 管理员登陆 帮助人员登陆 普通方式登陆 You don't even have a usergroup! 运行php得到的输出 代码: 普通方式登陆 ★Begin...End 这个语句用于读取一个整数索引矩阵(Numerical Array,以数字为索引的数组)的值.而每个整数矩阵的子矩阵则成为以字符串为索引的矩阵(Associative Array)然后在 和 之间的语句将会被读取并且重复执行. 附加:,每个associative array(字符串为索引的矩阵)会有两个附加的值 ROWCNT : 此元素在父矩阵中的具体位置 (0,1,2,3,...n) (就是目前在第几个矩阵) ROWBIT : 矩阵序号的最后一位. (0,1,0,1,0,1,...) 下面是一个例子 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模版 代码:
最后的输出 代码:
☆smartTemplate的方法 注:以下列出的方法并不会在模版设计中出前,他们属于smartTemplate的代码编辑部分,但是如果为了实现更深一步的模版设计,下面的内容是肯定有用的. ★基础方法:assign (中文意思:赋值) 语法: assign ( 变量名, 混合内容 ) 或者 assign ( 矩阵变量 ) 更多介绍在变量介绍部分 ★Append(附加) 语法:append ( 变量名, 内容 ) 对所提供的变量附加提供的内容 例子: 代码: $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(); ?> 模版 代码: Sample Links{TITLE} 最终输出 代码: Sample LinksPHP Apache MySQL 另外一个附加字符串的例子: 代码: $page = new SmartTemplate('template.html'); $page->append('TITLE' => 'Hello '); $page->append('TITLE' => 'World '); $page->append('TITLE' => '!'); $page->output(); ?> 输出将会得到 代码: Hello World ! |
历史上的今天:
对文本文件操作很好的类 2005-09-07
阿拉伯数字转中文大(小)写的函数 2005-09-07
关于 PHP 事件驱动 2005-09-07
PHP 编码规范 2005-09-07
WEB软件结构原则 2005-09-07
随机文章:
对文本文件操作很好的类 2005-09-07
阿拉伯数字转中文大(小)写的函数 2005-09-07
关于 PHP 事件驱动 2005-09-07
PHP 编码规范 2005-09-07
WEB软件结构原则 2005-09-07
收藏到:Del.icio.us
引用地址:







