输出过滤器

输出过滤器将处理模板的输出内容,执行的时机是在模板载入并执行之后,但在内容显示之前。

|string smartyoutputfilter_name(|$templateoutput, |
| |$template);|

string $template_output;object $template;

第一个参数是将会被处理的输出内容,第二个参数是调用该函数的Smarty实例。插件会对内容进行处理并返回结果。


Example 18.9. 输出过滤器

  1. <?php
  2. /*
  3. * Smarty plugin
  4. * -------------------------------------------------------------
  5. * File: outputfilter.protect_email.php
  6. * Type: outputfilter
  7. * Name: protect_email
  8. * Purpose: 将邮件地址的@转换成%40,以防止垃圾邮件爬虫的收集。
  9. * -------------------------------------------------------------
  10. */
  11. function smarty_outputfilter_protect_email($output, Smarty_Internal_Template $template)
  12. {
  13. return preg_replace('!(\S+)@([a-zA-Z0-9\.\-]+\.([a-zA-Z]{2,3}|[0-9]{1,3}))!',
  14. '$1%40$2', $output);
  15. }
  16. ?>
  17.  

参见: registerFilter(), unregisterFilter().

原文: https://www.smarty.net/docs/zh_CN/plugins.outputfilters.tpl