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 相关文章推荐
[FAQ]PHP中的一些常识:类篇
Oct 09 PHP
一个程序下载的管理程序(三)
Oct 09 PHP
使用 php4 加速 web 传输
Oct 09 PHP
php中定义网站根目录的常用方法
Aug 08 PHP
PHP表单验证的3个函数ISSET()、empty()、is_numeric()的使用方法
Aug 22 PHP
php的declare控制符和ticks教程(附示例)
Mar 21 PHP
PHP中字符安全过滤函数使用小结
Feb 25 PHP
PHP微信开发之文本自动回复
Jun 23 PHP
php安装ssh2扩展的方法【Linux平台】
Jul 20 PHP
PHP控制反转(IOC)和依赖注入(DI)
Mar 13 PHP
PHP使用正则表达式实现过滤非法字符串功能示例
Jun 04 PHP
PHP实现函数内修改外部变量值的方法示例
Dec 28 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 adodb连接带密码access数据库实例,测试成功
2008/05/14 PHP
PHP 执行系统外部命令 system() exec() passthru()
2009/08/11 PHP
php中url传递中文字符,特殊危险字符的解决方法
2013/08/17 PHP
php 生成Tab键或逗号分隔的CSV
2016/09/24 PHP
ThinkPHP的SAE开发相关注意事项详解
2016/10/09 PHP
php中对象引用和复制实例分析
2019/08/14 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
jQuery 1.2.x 升? 1.3.x 注意事项
2009/05/06 Javascript
jquery 常用操作整理 基础入门篇
2009/10/14 Javascript
Javascript实现页面跳转的几种方式分享
2013/10/26 Javascript
js中传递特殊字符(+,&amp;)的方法
2014/01/16 Javascript
jQuery源码解读之addClass()方法分析
2015/02/20 Javascript
jQuery焦点图切换特效代码分享
2015/09/15 Javascript
[原创]JQuery 在表单提交之前修改 提交的值
2016/04/14 Javascript
jQuery中fadein与fadeout方法用法示例
2016/09/16 Javascript
vue-cli的webpack模板项目配置文件分析
2017/04/01 Javascript
在Vue组件中使用 TypeScript的方法
2018/02/28 Javascript
在vue项目中,使用axios跨域处理
2018/03/07 Javascript
vue实现自定义日期组件功能的实例代码
2018/11/06 Javascript
JS实现横向轮播图(中级版)
2020/01/18 Javascript
python实现爬虫统计学校BBS男女比例之数据处理(三)
2015/12/31 Python
利用Python操作消息队列RabbitMQ的方法教程
2017/07/19 Python
Python日期的加减等操作的示例
2017/08/15 Python
对python 匹配字符串开头和结尾的方法详解
2018/10/27 Python
Python 中的 global 标识对变量作用域的影响
2019/08/12 Python
Python Web框架之Django框架Model基础详解
2019/08/16 Python
Python 矩阵转置的几种方法小结
2019/12/02 Python
pytorch 实现tensor与numpy数组转换
2019/12/27 Python
解决reload(sys)后print失效的问题
2020/04/25 Python
浅谈CSS3特性查询(Feature Query: @supports)功能简介
2017/07/31 HTML / CSS
商务英语求职自荐信范文
2013/12/24 职场文书
模具设计与制造专业推荐信
2014/02/16 职场文书
滞留工资返还协议书
2014/10/19 职场文书
人口与计划生育责任书
2015/05/09 职场文书
女性健康知识讲座主持词
2015/07/04 职场文书
MySQL 分区表中分区键为什么必须是主键的一部分
2022/03/17 MySQL