Skip to content

预过滤器 {/programmers/advanced-features/.prefilters}

模板预过滤器是在模板编译之前运行的 PHP 函数。这对预处理你的模板以移除不需要的注释、监视人们在模板中放入的内容等非常有用。

预过滤器可以通过注册或者使用loadFilter()函数从插件目录加载,或者设置$autoload_filters变量。

Smarty 会将模板源代码作为第一个参数传递,并期望函数返回结果模板源代码。

下面的代码将移除模板源中的所有 html 注释。

<?php
// 在你的应用中放入以下代码
function remove_dw_comments($tpl_source, Smarty_Internal_Template $template)
{
    return preg_replace("/<!--#.*-->/U",'',$tpl_source);
}

// 注册预过滤器
$smarty->registerFilter('pre','remove_dw_comments');
$smarty->display('index.tpl');
?>

参见 registerFilter()后过滤器loadFilter()