smarty高级特性之过滤器的使用方法


Posted in PHP onDecember 25, 2015

本文实例分析了smarty高级特性之过滤器的使用方法。分享给大家供大家参考,具体如下:

高级特性中过滤器的使用

1、预过滤器

function remove_dw_comments($tpl_source, &$smarty)
{
 return preg_replace("/<!--#.*-->/U","",$tpl_source);
 //去除原tpl文件中的注释,使其在编译后的文件中不显示
}
//注册预过滤器
$smarty->register_prefilter("remove_dw_comments");
$smarty->display("test1.tpl");

test1.tpl

<h1>与过滤器的使用</h1>
<!--#hello-->  注释的格式
这样的话,注释在编译后的文件中被过滤掉

2、后过滤器

function add_header_comment($tpl_source, &$smarty)
{
 return "<?php echo \"<!-- Created by Smarty! -->\n\" ?>\n".$tpl_source;
 //添加头部注释
}
//注册后过滤器
$smarty->register_postfilter("add_header_comment");
$smarty->display('test2.tpl');

模板文件:

test2.tpl

头部会产生注释:

<!-- Created by Smarty! -->

3、输出滤镜

function protect_email($tpl_output, &$smarty){
  $tpl_output = preg_replace('!(\S+)@([a-zA-Z0-9\.\-]+\.([a-zA-Z]{2,3}|[0-9]{1,3}))!', '$1%40$2', $tpl_output);
  return $tpl_output;}// register the outputfilter$smarty->register_outputfilter("protect_email");
  $smarty->display("index.tpl");
}
$smarty->register_outputfilter("protect_email");
$smarty->display("index.tpl");

希望本文所述对大家基于smarty模板的PHP程序设计有所帮助。

PHP 相关文章推荐
坏狼的PHP学习教程之第2天
Jun 15 PHP
php批量缩放图片的代码[ini参数控制]
Feb 11 PHP
解析php中const与define的应用区别
Jun 18 PHP
利用PHP实现短域名互转
Jul 05 PHP
php使用fsockopen函数发送post,get请求获取网页内容的方法
Nov 15 PHP
php header函数的常用http头设置
Jun 25 PHP
Zend Framework实现多服务器共享SESSION数据的方法
Mar 22 PHP
PHP异步进程助手async-helper
Feb 05 PHP
php+redis实现商城秒杀功能
Nov 19 PHP
解决在Laravel 中处理OPTIONS请求的问题
Oct 11 PHP
Laravel 集成微信用户登录和绑定的实现
Dec 27 PHP
一文看懂PHP进程管理器php-fpm
Jun 01 PHP
WordPress中编写自定义存储字段的相关PHP函数解析
Dec 25 #PHP
PHP加密解密实例分析
Dec 25 #PHP
PHP时间类完整实例(非常实用)
Dec 25 #PHP
PHP图形操作之Jpgraph学习笔记
Dec 25 #PHP
php实现scws中文分词搜索的方法
Dec 25 #PHP
php自定义分页类完整实例
Dec 25 #PHP
php导出生成word的方法
Dec 25 #PHP
You might like
php 修改zen-cart下单和付款流程以防止漏单
2010/03/08 PHP
php设计模式 Strategy(策略模式)
2011/06/26 PHP
Smarty中的注释和截断功能介绍
2015/04/09 PHP
PHP之正则表达式捕获组与非捕获组(详解)
2015/07/29 PHP
TextArea设置MaxLength属性最大输入值的js代码
2012/12/21 Javascript
extjs ColumnChart设置不同的颜色实现代码
2013/05/17 Javascript
纯Javascript实现Windows 8 Metro风格实现
2013/10/15 Javascript
JS替换文本域内的回车示例
2014/02/18 Javascript
利用Jquery实现可多选的下拉框
2014/02/21 Javascript
jquery正则表达式验证(手机号、身份证号、中文名称)
2015/12/31 Javascript
AngularJS 依赖注入详解及示例代码
2016/08/17 Javascript
JS实现的DIV块来回滚动效果示例
2017/02/07 Javascript
js数组实现权重概率分配
2017/09/12 Javascript
vue+jquery+lodash实现滑动时顶部悬浮固定效果
2018/04/28 jQuery
jQuery实现为动态添加的元素绑定事件实例分析
2018/09/07 jQuery
使用apifm-wxapi模块中的问题及解决方法
2019/08/05 Javascript
在Python中使用第三方模块的教程
2015/04/27 Python
使用python实现knn算法
2017/12/20 Python
15行Python代码带你轻松理解令牌桶算法
2018/03/21 Python
python批量修改文件名的示例
2020/09/27 Python
python中用Scrapy实现定时爬虫的实例讲解
2021/01/18 Python
在Pycharm中安装Pandas库方法(简单易懂)
2021/02/20 Python
CSS3的Flexbox布局的简明入门指南
2016/04/08 HTML / CSS
AmazeUI 评论列表的实现示例
2020/08/13 HTML / CSS
医疗保健专业人士购物网站:Scrubs & Beyond
2017/02/08 全球购物
耐克波兰官方网站:Nike波兰
2019/09/03 全球购物
标准自荐信范文
2014/01/29 职场文书
后勤主管岗位职责
2014/03/01 职场文书
机械专业技术员求职信
2014/06/14 职场文书
房屋租赁合同解除协议书
2014/10/11 职场文书
2014年驾驶员工作总结
2014/11/18 职场文书
2014年个人工作总结报告
2014/11/27 职场文书
留学推荐信(中英文版)
2015/03/26 职场文书
2016年度农村党员干部主题教育活动总结
2016/04/06 职场文书
mysql查询结果实现多列拼接查询
2022/04/03 MySQL
Vue 打包后相对路径的引用问题
2022/06/05 Vue.js