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&amp;MYSQL分页原理及实现
Jan 02 PHP
php fsockopen中多线程问题的解决办法[翻译]
Nov 09 PHP
第三章 php操作符与控制结构代码
Dec 30 PHP
PHP中使用file_get_contents抓取网页中文乱码问题解决方法
Dec 17 PHP
9条PHP编程小知识及易犯的小错误
Jan 22 PHP
PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法
Mar 07 PHP
PHP中数据类型转换的三种方式
Apr 02 PHP
CodeIgniter配置之autoload.php自动加载用法分析
Jan 20 PHP
PHP实现的构造sql语句类实例
Feb 03 PHP
Apache无法自动跳转却显示目录的解决方法
Nov 30 PHP
PHP实现二维数组去重功能示例
Jan 12 PHP
详细分析PHP 命名空间(namespace)
Jun 30 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 替换模板变量实现步骤
2009/08/24 PHP
php下通过IP获取地理位置的代码(小偷程序)
2011/06/09 PHP
PHP的加密方式及原理
2012/06/14 PHP
字符串长度函数strlen和mb_strlen的区别示例介绍
2014/09/09 PHP
PHP文件读取功能的应用实例
2015/05/08 PHP
PHP基于phpqrcode生成带LOGO图像的二维码实例
2015/07/10 PHP
自写的利用PDO对mysql数据库增删改查操作类
2018/02/19 PHP
javascript hasFocus使用实例
2010/06/29 Javascript
浅谈JavaScript编程语言的编码规范
2011/10/21 Javascript
js从10种颜色中随机取色实现每次取出不同的颜色
2013/10/23 Javascript
用jquery修复在iframe下的页面锚点失效问题
2014/08/22 Javascript
JavaScript onkeydown事件入门实例(键盘某个按键被按下)
2014/10/17 Javascript
常用的JavaScript模板引擎介绍
2015/02/28 Javascript
基于BootStrap Metronic开发框架经验小结【九】实现Web页面内容的打印预览和保存操作
2016/05/12 Javascript
快速移动鼠标触发问题及解决方法(ECharts外部调用保存为图片操作及工作流接线mouseenter和mouseleave)
2016/08/29 Javascript
BootStrap中jQuery插件Carousel实现轮播广告效果
2017/03/27 jQuery
webpack本地开发环境无法用IP访问的解决方法
2018/03/20 Javascript
Vue中$refs的用法详解
2018/06/24 Javascript
vue3使用vue-count-to组件的实现
2020/12/25 Vue.js
[04:03][TI9趣味短片] 小鸽子茶话会
2019/08/20 DOTA
好的Python培训机构应该具备哪些条件
2018/05/23 Python
python+influxdb+shell编写区域网络状况表
2018/07/27 Python
python将秒数转化为时间格式的实例
2018/09/16 Python
Python学习笔记之列表和成员运算符及列表相关方法详解
2019/08/22 Python
Python实现动态给类和对象添加属性和方法操作示例
2020/02/29 Python
python读取配置文件方式(ini、yaml、xml)
2020/04/09 Python
Pycharm生成可执行文件.exe的实现方法
2020/06/02 Python
美国最大的电子宠物训练产品制造商:PetSafe
2018/10/12 全球购物
你们项目是如何进行变更控制的
2015/08/26 面试题
致长跑运动员加油稿
2014/02/20 职场文书
暑假社会实践心得体会
2014/09/02 职场文书
tensorboard 可视化之localhost:6006不显示的解决方案
2021/05/22 Python
OpenCV-Python实现油画效果的实例
2021/06/08 Python
Canvas如何做个雪花屏版404的实现
2021/09/25 HTML / CSS
浅谈MySql整型索引和字符串索引失效或隐式转换问题
2021/11/20 MySQL
教你使用Jenkins集成Harbor自动发布镜像
2022/04/03 Servers