当通过display()或
fetch()�调用模�的时候,
输出的内容将会�过一个或者多个输出过滤器�进行处�。
对比
�置过滤器,
å�Žç½®è¿‡æ»¤å™¨æ˜¯åœ¨æ¨¡æ�¿ç¼–译å�Žä½†æ²¡æœ‰è¢«å˜å‚¨åˆ°ç¼–译文件å‰�调用,
输出过滤器是模�执行�准备输出时调用。
输出过滤器�以通过注册过滤器�调用,
或者放置到æ�’件目录ä¸ï¼Œç”¨
loadFilter()函数或者
设置
$autoload_filters�调用。
Smarty把准备输出的内容作为第一个å�‚æ•°ä¼ é€’åˆ°å‡½æ•°ä¸ï¼Œå¹¶æœŸå¾…函数返回ç»�过处ç�†çš„内容。
Example 17.13. 使用输出过滤器
<?php
// 在PHP程åº�ä¸
function protect_email($tpl_output, Smarty_Internal_Template $template)
{
$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;
}
// 注册过滤器
$smarty->registerFilter("output","protect_email");
$smarty->display("index.tpl");
// 现在,所有显示的电å�邮件地å�€éƒ½ä¼šç»�过简å�•ä¿�护,以防æ¢åžƒåœ¾é‚®ä»¶çˆ¬è™«
?>
��
registerFilter(),
loadFilter(),
$autoload_filters,
�置过滤器 和
$plugins_dir.
