アウトプットフィルタプラグイン
アウトプットフィルタプラグインは、テンプレートが読み込まれてパースされた後(しかしその出力が表示される前)にテンプレートの出力を操作します。
string smarty_outputfilter_name (string $template_output, object &$smarty)
アウトプットフィルタの第1パラメータは、処理される必要があるテンプレート出力です。第2パラメータは、呼び出されるプラグインのSmartyのインスタンスです。このプラグインは戻り値に、修正されたテンプレートソースを返すようにして下さい。
例 15-9. アウトプットフィルタプラグイン
<?php/* * Smarty plugin * ----- * File: outputfilter.protect_email.php * Type: outputfilter * Name: protect_email * Purpose: スパムボットからのシンプルな保護として、 * emailアドレスの"@"を"%40"に変換する * ----- */function smarty_outputfilter_protect_email($output, &$smarty)
{return preg_replace( '!(\S+)@([a-zA-Z0-9\.\-]+\.([a-zA-Z]{2,3}|[0-9]{1,3}))!', '$1%40$2', $output);}
?>