位置:首頁 > 框架 > Smarty教學 > Smarty輸出濾鏡

Smarty輸出濾鏡

Output Filters

輸出濾鏡

 

當模板通過函數 display() 或者 fetch()被調用時,它的輸出能夠通過一個或者多個濾鏡而發出。 它與預過濾器的不同之處就是預過濾器編譯模板是在模板保存到磁盤之前,輸出濾鏡是在它執行的時候才操作模板輸出的。

Output filters can be either registered or loaded from the plugins directory by using load_filter() function or by setting $autoload_filters variable. Smarty will pass the template output as the first argument, and expect the function to return the result of the processing.

輸出濾鏡同樣能夠通過 load filter() 函數和設置 $autoload filters 變量來注冊或者從工具目錄裡載入。SMARTY將傳遞模板輸出作為第一個參數,通過自定義函數返回處理結果。


Example 15-4. using a template outputfilter -http://www.gitbook.net/smarty

<?php
// put this in your application
function protect_email($tpl_output, &$smarty)
{
 $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;
}

// register the outputfilter  $smarty->register_outputfilter("protect_email");
$smarty->display("index.tpl");

// now any occurrence of an email address in the template output will have
// a simple protection against spambots
?>