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 相关文章推荐
我的论坛源代码(十)
Oct 09 PHP
延长phpmyadmin登录时间的方法
Feb 06 PHP
php数组函数序列之array_unshift() 在数组开头插入一个或多个元素
Nov 07 PHP
ThinkPHP使用UTFWry地址库进行IP定位实例
Apr 01 PHP
PHP队列用法实例
Nov 05 PHP
使用PHP如何实现高效安全的ftp服务器(二)
Dec 30 PHP
PHP编程基本语法快速入门手册
Jan 07 PHP
Android App中DrawerLayout抽屉效果的菜单编写实例
Mar 21 PHP
PHP书写格式详解(必看)
May 23 PHP
Win7环境下Apache连接MySQL提示连接已重置的解决办法
May 09 PHP
利用PHP获取汉字首字母并且分组排序详解
Oct 22 PHP
解决laravel groupBy 对查询结果进行分组出现的问题
Oct 09 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
详细介绍:Apache+PHP+MySQL配置攻略
2006/09/05 PHP
php Smarty 字符比较代码
2011/02/27 PHP
2个比较经典的PHP加密解密函数分享
2014/07/01 PHP
Linux php 中文乱码的快速解决方法
2016/05/13 PHP
php中让人头疼的浮点数运算分析
2016/10/10 PHP
PHP上传图片时判断上传文件是否为可用图片的方法
2016/10/20 PHP
php中引用符号(&amp;)的使用详细介绍
2016/12/06 PHP
微信企业转账之入口类分装php代码
2018/10/01 PHP
JavaScript实现在数组中查找不同顺序排列的字符串
2014/09/26 Javascript
jQuery简单实现禁用右键菜单
2015/03/10 Javascript
js生成随机数的过程解析
2015/11/24 Javascript
深入浅析Bootstrap列表组组件
2016/05/03 Javascript
ionic中列表项增加和删除的实现方法
2017/01/22 Javascript
使用JavaScript判断用户输入的是否为正整数(两种方法)
2017/02/05 Javascript
详解jquery插件jquery.viewport.js学习使用方法
2017/09/08 jQuery
js构造函数创建对象是否加new问题
2018/01/22 Javascript
vue 全选与反选的实现方法(无Bug 新手看过来)
2018/02/09 Javascript
vue iView 上传组件之手动上传功能
2018/03/16 Javascript
js+css实现打字效果
2020/06/24 Javascript
5分钟快速掌握JS中var、let和const的异同
2018/09/19 Javascript
Vuejs中的watch实例详解(监听者)
2020/01/05 Javascript
Vue 禁用浏览器的前进后退操作
2020/09/04 Javascript
解决vue 使用axios.all()方法发起多个请求控制台报错的问题
2020/11/09 Javascript
[01:26]神话结束了,却也刚刚开始——DOTA2新英雄玛尔斯驾临战场
2019/03/10 DOTA
快速实现基于Python的微信聊天机器人示例代码
2017/03/03 Python
使用Anaconda3建立虚拟独立的python2.7环境方法
2018/06/11 Python
PyQt5+requests实现车票查询工具
2019/01/21 Python
使用matplotlib绘制图例标签中带有公式的图
2019/12/13 Python
国际知名设计师时装商店:Coggles
2016/09/05 全球购物
Brookstone美国官网:独特新奇产品
2017/03/04 全球购物
英国HYPE双肩包官网:英国本土时尚潮牌
2018/09/26 全球购物
BAILEY 44官网:美国制造的女性服装
2019/07/01 全球购物
欧洲最古老的鞋厂:Peter Kaiser
2019/11/05 全球购物
电子商务专业应届毕业生求职信
2014/06/21 职场文书
张家口市高新区党工委群众路线教育实践活动整改方案
2014/10/25 职场文书
Python之matplotlib绘制折线图
2022/04/13 Python