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 strtotime函数用法、实现原理和源码分析
Feb 04 PHP
PHP多文件上传类实例
Mar 07 PHP
优化WordPress中文章与评论的时间显示
Jan 12 PHP
PHP微信开发之模板消息回复
Jun 24 PHP
Yii2针对指定url的生成及图片等的引入方法小结
Jul 18 PHP
Zend Framework入门教程之Zend_Mail用法示例
Dec 08 PHP
PHP简单实现冒泡排序的方法
Dec 26 PHP
PHP+redis实现的悲观锁机制示例
Jun 12 PHP
PHP异常类及异常处理操作实例详解
Dec 19 PHP
php求斐波那契数的两种实现方式【递归与递推】
Sep 09 PHP
Swoole源码中如何查询Websocket的连接问题详解
Aug 30 PHP
宝塔面板出现“open_basedir restriction in effect. ”的解决方法
Mar 14 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
浅析get与post的一些特殊情况
2014/07/28 PHP
thinkphp浏览历史功能实现方法
2014/10/29 PHP
2017年最新PHP经典面试题目汇总(上篇)
2017/03/17 PHP
javascript 不间断的图片滚动并可点击
2010/01/15 Javascript
js脚本实现数据去重
2014/11/27 Javascript
JavaScript学习小结(一)——JavaScript入门基础
2015/09/02 Javascript
JS脚本实现动态给标签控件添加事件的方法
2016/06/02 Javascript
微信小程序 生命周期和页面的生命周期详细介绍
2017/01/19 Javascript
JS动态插入脚本和插入引用外部链接脚本的方法
2018/05/21 Javascript
vue实现城市列表选择功能
2018/07/16 Javascript
引入外部js脚本加载慢与页面白屏问题的解决
2018/12/10 Javascript
微信小程序实现通过双向滑动缩放图片大小的方法
2018/12/30 Javascript
layer页面跳转,获取html子节点元素的值方法
2019/09/27 Javascript
vue获取data数据改变前后的值方法
2019/11/07 Javascript
javascript实现时钟动画
2020/12/03 Javascript
用Python实现一个简单的线程池
2015/04/07 Python
Python开发之快速搭建自动回复微信公众号功能
2016/04/22 Python
Python logging管理不同级别log打印和存储实例
2018/01/19 Python
Python读取数据集并消除数据中的空行方法
2018/07/12 Python
在Python文件中指定Python解释器的方法
2019/02/18 Python
django框架中间件原理与用法详解
2019/12/10 Python
python通过matplotlib生成复合饼图
2020/02/06 Python
Python自动采集微信联系人的实现示例
2020/02/28 Python
Django Channel实时推送与聊天的示例代码
2020/04/30 Python
python实现xlwt xlrd 指定条件给excel行添加颜色
2020/07/14 Python
Django自带的用户验证系统实现
2020/12/18 Python
html5 canvas合成海报所遇问题及解决方案总结
2017/08/03 HTML / CSS
html5如何在Canvas中实现自定义路径动画示例
2017/09/18 HTML / CSS
学生实习自我鉴定
2013/10/11 职场文书
关于旷工的检讨书
2014/02/02 职场文书
工作会议方案
2014/05/21 职场文书
旅游专业毕业生自荐书
2014/06/30 职场文书
2014年党支部书记工作总结
2014/12/04 职场文书
婚礼伴郎致辞
2015/07/28 职场文书
CSS变量实现主题切换的方法
2021/06/23 HTML / CSS
Mybatis-plus在项目中的简单应用
2021/07/01 Java/Android