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 相关文章推荐
PHPExcel读取Excel文件的实现代码
Dec 06 PHP
php截取字符串并保留完整xml标签的函数代码
Feb 06 PHP
处理单名多值表单的详解
Jun 08 PHP
php 模拟 asp.net webFrom 按钮提交事件的思路及代码
Dec 02 PHP
ThinkPHP之foreach标签使用概述
Jun 30 PHP
smarty中英文多编码字符截取乱码问题解决方法
Oct 28 PHP
php程序员应具有的7种能力小结
Nov 27 PHP
CI框架中redis缓存相关操作文件示例代码
May 17 PHP
php 生成签名及验证签名详解
Oct 26 PHP
php防止表单重复提交实例讲解
Feb 11 PHP
tp5框架内使用tp3.2分页的方法分析
May 05 PHP
tp5.1 框架数据库常见操作详解【添加、删除、更新、查询】
May 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
PHP可变函数学习小结
2015/11/29 PHP
php生成酷炫的四个字符验证码
2016/04/22 PHP
thinkPHP框架中执行事务的方法示例
2018/05/31 PHP
Thinkphp 框架基础之源码获取、环境要求与目录结构分析
2020/04/27 PHP
js为鼠标添加右击事件防止默认的右击菜单弹出
2013/07/29 Javascript
15个常用的jquery代码片段
2015/12/19 Javascript
基于JS实现Android,iOS一个手势动画效果
2016/04/27 Javascript
ionic js 模型 $ionicModal 可以遮住用户主界面的内容框
2016/06/06 Javascript
原生js仿jquery animate动画效果
2016/07/13 Javascript
javascript实现去除HTML标签的方法
2016/12/26 Javascript
js实现简单的计算器功能
2017/01/16 Javascript
利用Node.js了解与测量HTTP所花费的时间详解
2017/09/22 Javascript
express+mockjs实现模拟后台数据发送功能
2018/01/07 Javascript
微信小程序停止其他视频播放当前视频的实例代码
2019/12/25 Javascript
JavaScript组合设计模式--改进引入案例分析
2020/05/23 Javascript
Javascript如何递归遍历本地文件夹
2020/08/06 Javascript
Vue 实现拨打电话操作
2020/11/16 Javascript
[04:28]2014DOTA2国际邀请赛 采访小兔子LGD挺进钥匙体育馆
2014/07/14 DOTA
Python的Django中django-userena组件的简单使用教程
2015/05/30 Python
python的Tqdm模块的使用
2018/01/10 Python
Python cookbook(数据结构与算法)找出序列中出现次数最多的元素算法示例
2018/03/15 Python
Python中if elif else及缩进的使用简述
2018/05/31 Python
python实现BP神经网络回归预测模型
2019/08/09 Python
Python 、Pycharm、Anaconda三者的区别与联系、安装过程及注意事项
2019/10/11 Python
Pytorch实现基于CharRNN的文本分类与生成示例
2020/01/08 Python
Pycharm中使用git进行合作开发的教程详解
2020/11/17 Python
详解python日志输出使用配置文件格式
2021/02/10 Python
SOA的常见陷阱或者误解是什么
2014/10/05 面试题
职业技术学校毕业生推荐信
2013/12/03 职场文书
给实习单位的感谢信
2014/02/01 职场文书
运动会加油稿20字
2014/11/15 职场文书
2015高三毕业寄语赠言
2015/02/27 职场文书
师范生见习自我总结
2015/06/23 职场文书
史上最全书信经典范文大全(建议收藏)
2019/07/10 职场文书
小学语文教师竞聘演讲稿范文
2019/08/09 职场文书
Nginx配置并兼容HTTP实现代码解析
2021/03/31 Servers