php smarty模板引擎的6个小技巧

2015-01-24信息快讯网

php smarty模板引擎中几个经常被忽略的但比较有用的标签整理,包括capture标签,config_load标签,php标签,strip标签,fetch标签,以及如何在smarty模板中直接使用define定义的常量

下面本文将以具体的例子一一分析:

capture标签

capture的中文意思是抓取,它的作用是抓取模板输出的数据,当我们需要它的时候,调用它,以得到抓取数据的目的。如下例子:

{capture name="test"}

<img src="testimg.jpg">

{/capture}

<div class="image">

{$smarty.capture.test}

</div>

说明:在{capture name="test"}和{/capture}之间的内容被存储到变量$test中,该变量由name属性指定.在模板中通过 $smarty.capture.test 访问该变量.如果没有指定name 属性,函数默认将使用"default" 作为参数,这一点类似Jquery中的clone方法。

config_load标签

config_load可以直接将文件中的内容读取出来,这样可以省掉assign这一步,如下使用示例:

test.csv 文件:

pageTitle = "config_load_test"

bodyBgColor = "#eeeeee"

img = "girl.jpg"

width="100"

height="100"

则模板 index.tpl 文件中可以如下引用以上 test.csv 文件:

{config_load file="test.csv"}
<html>
<title>{#pageTitle#}</title>
<body bgcolor="{#bodyBgColor#}">
<img src="{#img#}" width="{#width#}" height="{#height#}">
</body>
</html>

注:上述过程中如果出现这样的问题Warning: Smarty error: unable to read resource, 请查看一下,你的test.csv是不是放在smarty的配置目录中,默认配置目录是configs 目录。

php标签

 当你习惯了assign后,你有没有想过,在模板文件里面直接写php代码呢,虽然非常不建议这么做,但有时候迫于业务的需求不得不这样干的时候该肿么办呢?看看下面这个例子:

{php}

global $result;

foreach($result as $key=>$value){

echo "key=$key,value=>$value<br>";

}

{/php}

strip标签

strip标签的作用是去除标签内的空格和回车,我自己感觉这个标签还是挺有用的,可以压缩最终输出的html格式,想要看效果的话,看看本站的源代码就知道了,是不是很酷,呵呵:

{strip}

<div>

<font color="red">strip</font>

<span>

<div>php smarty strip 压缩html输出,www.phpernote.com 看源码效果</div>

</span>

</div>

{/strip}



fetch标签

fetch标签和php里面的函数 file_get_contents 功能差不多,都可以把文件中的内容读出来,并且可以将读出来的结果以字符串的形式赋值给某个变量,如下使用案例:

{fetch file="./aaaa.txt" assign="result"}

{if is_array($result)}

<b>is array</b>

{else if}

<b>not array</b>

{/if}


使用常量

在php中使用 define 定义的常量可以在smarty模板中直接使用

使用方法如下:

{$smarty.const.你定义的常量名}


 

PHP获取mysql数据表的字段名称和详细信息的方法
PHP实现手机号码中间四位用星号(*)隐藏的自定义函数分享
PHP会话控制:Session与Cookie详解
PHP+FFMPEG实现将视频自动转码成H264标准Mp4文件
php实现获取及设置用户访问页面语言类
PHP实现支持GET,POST,Multipart/form-data的HTTP请求类
php实现的支持imagemagick及gd库两种处理的缩略图生成类
PHP图片库imagemagick安装方法
安装ImageMagick出现error while loading shared libraries的解决方法
PHP邮件发送类PHPMailer用法实例详解
PHP提示Cannot modify header information - headers already sent by解决方法
Windows下的PHP 5.3.x安装 Zend Guard Loader教程
当前比较流行的两款PHP加密、解密工具Zend Guard和iconCube介绍
Laravel框架表单验证详解
Smarty变量调节器失效的解决办法
php之Smarty模板使用方法示例详解
ThinkPHP使用smarty模板引擎的方法
Smarty局部缓存的几种方法简介
smarty模板局部缓存方法使用示例
PHP模板引擎Smarty的缓存使用总结
PHP中使用smarty生成静态文件的例子
php过滤html中的其他网站链接的方法(域名白名单功能)
php导出csv数据在浏览器中输出提供下载或保存到文件的示例
smarty模板中使用get、post、request、cookies、session变量的方法
php冒泡排序、快速排序、快速查找、二维数组去重实例分享
php获取中文拼音首字母类和函数分享
phpmailer中文乱码问题的解决方法
CodeIgniter框架提示Disallowed Key Characters的解决办法
php使用imagick模块实现图片缩放、裁剪、压缩示例
php sybase_fetch_array使用方法
用PHP和Shell写Hadoop的MapReduce程序
PHP扩展模块Pecl、Pear以及Perl的区别
smarty获得当前url的方法分享
smarty模板中拼接字符串的方法
sae使用smarty模板的方法
©2014-2024 dbsqp.com