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


Posted in PHP onApril 24, 2014

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

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 相关文章推荐
改变Apache端口等配置修改方法
Jun 05 PHP
MongoDB在PHP中的常用操作小结
Feb 20 PHP
php实现斐波那契数列的简单写法
Jul 19 PHP
jquery+php+ajax显示上传进度的多图片上传并生成缩略图代码
Oct 15 PHP
PHP实现动态柱状图改进版
Mar 30 PHP
php获得网站访问统计信息类Compete API用法实例
Apr 02 PHP
PHP 错误处理机制
Jul 06 PHP
Symfony2学习笔记之插件格式分析
Mar 17 PHP
PHP new static 和 new self详解
Feb 19 PHP
Laravel中的Blade模板引擎示例详解
Oct 10 PHP
Laravel模糊查询区分大小写的实例
Sep 29 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
Nov 26 PHP
PHP中使用smarty生成静态文件的例子
Apr 24 #PHP
php过滤html中的其他网站链接的方法(域名白名单功能)
Apr 24 #PHP
php导出csv数据在浏览器中输出提供下载或保存到文件的示例
Apr 24 #PHP
smarty模板中使用get、post、request、cookies、session变量的方法
Apr 24 #PHP
php冒泡排序、快速排序、快速查找、二维数组去重实例分享
Apr 24 #PHP
php获取中文拼音首字母类和函数分享
Apr 24 #PHP
PHP获取浏览器信息类和客户端地理位置的2个方法
Apr 24 #PHP
You might like
我的论坛源代码(四)
2006/10/09 PHP
php 字符串函数收集
2010/03/29 PHP
php并发对MYSQL造成压力的解决方法
2013/02/21 PHP
PHP-Fcgi下PHP的执行时间设置方法
2013/08/02 PHP
Codeigniter+PHPExcel实现导出数据到Excel文件
2014/06/12 PHP
动态加载iframe
2006/06/16 Javascript
解决 firefox 不支持 document.all的方法
2007/03/12 Javascript
form中限制文本字节数js代码
2007/06/10 Javascript
jQuery 使用手册(一)
2009/09/23 Javascript
dtree 网页树状菜单及传递对象集合到js内,动态生成节点
2012/04/14 Javascript
Node.js和PHP根据ip获取地理位置的方法
2014/03/14 Javascript
JavaScript DOM进阶方法
2015/04/13 Javascript
Bootstrap滚动监听(Scrollspy)插件详解
2016/04/26 Javascript
Javascript动画效果(1)
2016/10/11 Javascript
微信小程序进行微信支付的步骤昂述
2016/12/01 Javascript
为你的微信小程序体积瘦身详解
2017/05/20 Javascript
JS解析后台返回的JSON格式数据实例
2018/08/06 Javascript
JS实现关闭小广告特效
2021/01/29 Javascript
JavaScript实现手机号码 3-4-4格式并控制新增和删除时光标的位置
2020/06/02 Javascript
浅谈鸿蒙 JavaScript GUI 技术栈
2020/09/17 Javascript
WebStorm无法正确识别Vue3组合式API的解决方案
2021/02/18 Vue.js
Python 和 JS 有哪些相同之处
2017/11/23 Python
使用Numpy读取CSV文件,并进行行列删除的操作方法
2018/07/04 Python
Python基于多线程操作数据库相关问题分析
2018/07/11 Python
Python qqbot 实现qq机器人的示例代码
2019/07/11 Python
Spring实战之使用util:命名空间简化配置操作示例
2019/12/09 Python
Python 实现OpenCV格式和PIL.Image格式互转
2020/01/09 Python
python程序输出无内容的解决方式
2020/04/09 Python
python基于pygame实现飞机大作战小游戏
2020/11/19 Python
美国性感女装网站:bebe
2017/03/04 全球购物
大学生推广普通话演讲稿
2014/09/21 职场文书
质量主管工作职责
2014/09/26 职场文书
如何写观后感
2015/06/19 职场文书
详解MySQL主从复制及读写分离
2021/05/07 MySQL
MySQL读取JSON转换的方式
2022/03/18 MySQL
IIS服务器中设置HTTP重定向访问HTTPS
2022/04/29 Servers