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 相关文章推荐
编译问题
Oct 09 PHP
数据库相关问题
Oct 09 PHP
谈谈PHP语法(2)
Oct 09 PHP
PHP实现将科学计数法转换为原始数字字符串的方法
Dec 16 PHP
php准确获取文件MIME类型的方法
Jun 17 PHP
PHP框架Laravel学习心得体会
Oct 28 PHP
PHP实现的构造sql语句类实例
Feb 03 PHP
php版交通银行网银支付接口开发入门教程
Sep 26 PHP
Yii2学习笔记之汉化yii设置表单的描述(属性标签attributeLabels)
Feb 07 PHP
thinkPHP+LayUI 流加载实现功能
Sep 27 PHP
php中try catch捕获异常实例详解
Aug 06 PHP
PHP获取php,mysql,apche的版本信息及更多服务器信息
Mar 09 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基础知识:控制结构
2006/12/13 PHP
PHP5.4中json_encode中文转码的变化小结
2013/01/30 PHP
解析yahoo邮件用phpmailer发送的实例
2013/06/24 PHP
Drupal7 form表单二次开发要点与实例
2014/03/02 PHP
脚本吧 - 幻宇工作室用到js,超强推荐base.js
2006/12/23 Javascript
基本jquery的控制tabs打开的数量的代码
2010/10/17 Javascript
让ie运行js时提示允许阻止内容运行的解决方法
2010/10/24 Javascript
同一页面多个商品倒计时JS 基于面向对象的javascript
2012/02/16 Javascript
jquery实现动态画圆
2014/12/04 Javascript
动态生成的DOM不会触发onclick事件的原因及解决方法
2016/08/06 Javascript
Node.js中使用jQuery的做法
2016/08/17 Javascript
微信小程序--onShareAppMessage分享参数用处(页面分享)
2017/04/18 Javascript
Vue中保存用户登录状态实例代码
2017/06/07 Javascript
JS实现显示当前日期的实例代码
2018/07/03 Javascript
vue 监听某个div垂直滚动条下拉到底部的方法
2018/09/15 Javascript
bootstrap与pagehelper实现分页效果
2018/12/29 Javascript
layui 数据表格 点击分页按钮 监听事件的实例
2019/09/02 Javascript
Vue 中 a标签上href无法跳转的解决方式
2019/11/12 Javascript
vue 开发企业微信整合案例分析
2019/12/02 Javascript
Python中针对函数处理的特殊方法
2014/03/06 Python
Python中的作用域规则详解
2015/01/30 Python
python判断输入日期为第几天的实例
2018/11/13 Python
python实现名片管理系统项目
2019/04/26 Python
详解Python time库的使用
2019/10/10 Python
基于python plotly交互式图表大全
2019/12/07 Python
keras 权重保存和权重载入方式
2020/05/21 Python
详解canvas在圆弧周围绘制文本的两种写法
2018/05/22 HTML / CSS
Mio Skincare英国官网:身体紧致及孕期身体护理
2018/08/19 全球购物
德国受欢迎的旅游和休闲网站:lastminute.de
2019/09/23 全球购物
大学自主招生推荐信
2014/05/10 职场文书
2015教师见习期工作总结
2014/12/12 职场文书
行政介绍信范文
2015/05/04 职场文书
唐山大地震的观后感
2015/06/05 职场文书
导游词之云南省玉龙雪山
2019/12/19 职场文书
python解决12306登录验证码的实现
2021/04/18 Python
Javascript之datagrid查询详解
2021/09/15 Javascript