关于smarty的功能--过滤器
博客专区 > PHer 的博客 > 博客详情
关于smarty的功能--过滤器
PHer 发表于4年前
关于smarty的功能--过滤器
  • 发表于 4年前
  • 阅读 737
  • 收藏 1
  • 点赞 0
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

摘要: 前置过滤器 registerFilter('pre','') 后置过滤器 registerFilter(post','') 输出过滤器 registerFilter('output','') 以上过滤器皆是Smarty3以上版本具有特性.

过滤器可以在模板进入smarty编译模板前设置模板的内容,比如注释,
这些无关紧要的内容 我们不需要它们,因此可以在进入模板之前将其过滤

前置过滤器

    registerFilter('pre','');

<?php
 require  "./mySmarty.cla -->ss.php";
$smarty = new mySmarty();
//定义一个前置过滤器函数
function prevadd($tplName){
    $reg ="/<!--.*-->/";
    return preg_replace($reg,'',$tplName);
}
$smarty ->registerFilter("pre","prevadd");

后置过滤器

    registerFilter('post','');

<?php
//定义一个后置过滤器
function poster($tplname){
        
        return "<---author:smarty zheng--->".$tplname;
}
$smarty ->registerFilter("post","poster");

输出过滤器

    registerFilter('output','');

<?php
//定义输出过滤器
function outmessage($tplname){
        echo "13232<br/>";
        return str_replace("过滤器工具","tool",$tplname);
}
$smarty ->caching = 1;
$smarty ->registerFilter("output","outmessage");

$smarty ->assign('name','prvfileter');
$smarty->clearCompiledTemplate('filter.html');//清除编译目录下的编译文件或者指定条件的编译文件。
$smarty ->display("filter.html");

对于输出过滤器来说,输出过滤器在整个smarty的执行流程过程中.是在编译文件生成之后,所以输出过滤器的内容不会出现在view_c编译好的目录文件中,但是如果caching=1 那么输出过滤器的内容会保存到cache目录缓存目录中去


利用smarty的过滤功能可以为模板做统一的设置,可以将方法定义在父类控制器中。例如将所有的模板中的注释去除掉.

共有 人打赏支持
粉丝 3
博文 118
码字总数 38443
×
PHer
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: