输出过滤器

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

string smarty_outputfilter_name( $template_output,  
  $template);  
string $template_output;
object $template;
 

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

Example 18.9. 输出过滤器


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

     

参见: registerFilter(), unregisterFilter().