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 相关文章推荐
php中用数组的方法设置cookies
Apr 21 PHP
PHP与SQL注入攻击防范小技巧
Sep 16 PHP
PHP对MongoDB[NoSQL]数据库的操作
Mar 01 PHP
根据ip调用新浪api获取城市名并转成拼音
Mar 07 PHP
PHP解决URL中文GBK乱码问题的两种方法
Jun 03 PHP
ThinkPHP基于PHPExcel导入Excel文件的方法
Oct 15 PHP
thinkphp视图模型查询提示ERR: 1146:Table 'db.pr_order_view' doesn't exist的解决方法
Oct 30 PHP
php防止CC攻击代码 php防止网页频繁刷新
Dec 21 PHP
PHP简单获取及判断提交来源的方法
Apr 22 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
Nov 16 PHP
TP5(thinkPHP5框架)实现显示错误信息及行号功能的方法
Jun 03 PHP
PHP 并发场景的几种解决方案
Jun 14 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中将地址生成迅雷快车旋风链接的代码[测试通过]
2011/04/20 PHP
WordPress中获取指定分类及其子分类下的文章数目
2015/12/31 PHP
php多进程中的阻塞与非阻塞操作实例分析
2020/03/04 PHP
显示js对象所有属性和方法的函数
2009/10/16 Javascript
ExtJS下grid的一些属性说明
2009/12/13 Javascript
javascript时区函数介绍
2012/09/14 Javascript
JS原型对象通俗&quot;唱法&quot;
2012/12/27 Javascript
纯css+js写的一个简单的tab标签页带样式
2014/01/28 Javascript
javascript的BOM
2016/05/03 Javascript
轻松搞定js表单验证
2016/10/13 Javascript
JS插件plupload.js实现多图上传并显示进度条
2016/11/29 Javascript
JS 在数组指定位置插入/删除数据的方法
2017/01/12 Javascript
javascript遍历json对象的key和任意js对象属性实例
2017/03/09 Javascript
php简单数据库操作类的封装
2017/06/08 Javascript
Vue2.0基于vue-cli+webpack同级组件之间的通信教程(推荐)
2017/09/14 Javascript
浅谈angular2路由预加载策略
2017/10/04 Javascript
echarts设置图例颜色和地图底色的方法实例
2018/08/01 Javascript
JS中‘hello’与new String(‘hello’)引出的问题详解
2018/08/14 Javascript
Vue 报错TypeError: this.$set is not a function 的解决方法
2018/12/17 Javascript
JS错误处理与调试操作实例分析
2020/04/13 Javascript
[19:14]DOTA2 HEROS教学视频教你分分钟做大人-维萨吉
2014/06/24 DOTA
在Python中使用dict和set方法的教程
2015/04/27 Python
Python图像处理实现两幅图像合成一幅图像的方法【测试可用】
2019/01/04 Python
Python实现截取PDF文件中的几页代码实例
2019/03/11 Python
关于pycharm中pip版本10.0无法使用的解决办法
2019/10/10 Python
python中68个内置函数的总结与介绍
2020/02/24 Python
python matplotlib:plt.scatter() 大小和颜色参数详解
2020/04/14 Python
pyecharts动态轨迹图的实现示例
2020/04/17 Python
Python使用tkinter实现摇骰子小游戏功能的代码
2020/07/02 Python
Python语言编写智力问答小游戏功能
2020/10/13 Python
西式婚礼证婚词
2014/01/12 职场文书
党员个人对照检查材料
2014/10/01 职场文书
2015年世界艾滋病日活动总结
2015/03/24 职场文书
python将图片转为矢量图的方法步骤
2021/03/30 Python
浏览器常用基本操作之python3+selenium4自动化测试(基础篇3)
2021/05/21 Python
vscode远程免密登入Linux服务器的配置方法
2022/06/28 Servers