前置过滤器

前置过滤器是在模板编译之前调用的PHP函数。 该过滤器经常用于删除一些模板中的无用注释、检查注释的来源等等。

前置过滤器可以通过注册过滤器来调用, 或者放置到插件目录中,用 loadFilter()函数或者 设置$autoload_filters来调用。

Smarty把模板源代码作为第一个参数传递到函数中,并期待函数返回经过处理的源代码。


Example 17.11. 使用前置过滤器

这个例子将删除全部模板中的HTML注释。

  1. <?php
  2. // 在PHP程序中
  3. function remove_dw_comments($tpl_source, Smarty_Internal_Template $template)
  4. {
  5. return preg_replace("/<!--#.*-->/U",'',$tpl_source);
  6. }
  7.  
  8. // 注册过滤器
  9. $smarty->registerFilter('pre','remove_dw_comments');
  10. $smarty->display('index.tpl');
  11. ?>
  12.  

参见 registerFilter(), 后置过滤器loadFilter().

原文: https://www.smarty.net/docs/zh_CN/advanced.features.prefilters.tpl