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程序之die调试法 快速解决错误
Sep 17 PHP
php xml常用函数的集合(比较详细)
Jun 06 PHP
什么情况下可以不写PHP的闭合标签“?&gt;”
Aug 28 PHP
朋友网关于QQ相关的PHP代码(研究QQ的绝佳资料)
Jan 26 PHP
基于php的CMS中展示文章类实例分析
Jun 18 PHP
php获取远程文件内容的函数
Nov 02 PHP
修改PHP脚本使WordPress拦截垃圾评论的方法示例
Dec 10 PHP
CodeIgniter配置之routes.php用法实例分析
Jan 19 PHP
Laravel中注册Facades的步骤详解
Mar 16 PHP
PHP实现正则表达式分组捕获操作示例
Feb 03 PHP
PHP使用PDO操作sqlite数据库应用案例
Mar 07 PHP
PHP 自动加载类原理与用法实例分析
Apr 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
关于BIG5-HKSCS的解决方法
2007/03/20 PHP
PHP学习 运算符与运算符优先级
2008/06/15 PHP
献给php初学者(入门学习经验谈)
2010/10/12 PHP
Can't create/write to file 'C:\WINDOWS\TEMP\...MYSQL报错解决方法
2011/06/30 PHP
处理(php-cgi.exe - FastCGI 进程超过了配置的请求超时时限)的问题
2013/07/03 PHP
php获取文章上一页与下一页的方法
2014/12/01 PHP
JavaScript Date对象 日期获取函数
2010/12/19 Javascript
JS中处理与当前时间间隔的函数代码
2012/05/23 Javascript
一个JavaScript的求爱小特效
2014/05/09 Javascript
Js中使用hasOwnProperty方法检索ajax响应对象的例子
2014/12/08 Javascript
JavaScript事件学习小结(三)js事件对象
2016/06/09 Javascript
微信小程序 跳转传参数与传对象详解及实例代码
2017/03/14 Javascript
基于JS脚本语言的基础语法详解
2017/07/22 Javascript
关于JS与jQuery中的文档加载问题
2017/08/22 jQuery
jQuery中内容过滤器简单用法示例
2018/03/31 jQuery
如何使用 vue + d3 画一棵树
2018/12/03 Javascript
《javascript设计模式》学习笔记一:Javascript面向对象程序设计对象成员的定义分析
2020/04/07 Javascript
[01:50]WODOTA制作 DOTA2中文宣传片《HERO》
2013/04/28 DOTA
[01:08:29]DOTA2-DPC中国联赛定级赛 RNG vs Aster BO3第一场 1月9日
2021/03/11 DOTA
python验证码识别实例代码
2018/02/03 Python
python2 与 python3 实现共存的方法
2018/07/12 Python
python中字符串数组逆序排列方法总结
2019/06/23 Python
Python实现随机取一个矩阵数组的某几行
2019/11/26 Python
Pytorch模型转onnx模型实例
2020/01/15 Python
Python连接Hadoop数据中遇到的各种坑(汇总)
2020/04/14 Python
基于HTML5的齿轮动画特效
2016/02/29 HTML / CSS
HTML5操作WebSQL数据库的实例代码
2017/08/26 HTML / CSS
英国著名国际平价时尚男装品牌:Topman
2016/08/27 全球购物
斯德哥尔摩通票:Stockholm Pass
2018/01/09 全球购物
瑞典灯具和照明网上商店:Lamp24.se
2018/03/17 全球购物
最好的意大利皮夹克:D’Arienzo
2018/12/04 全球购物
教师自我评价范文
2013/12/16 职场文书
《青山不老》教学反思
2016/02/22 职场文书
vue实现书本翻页动画效果实例详解
2022/04/08 Vue.js
Python如何使用循环结构和分支结构
2022/04/13 Python
安装harbor作为docker镜像仓库的问题
2022/06/14 Servers