smarty @Wiki

アウトプットフィルタ

最終更新:

匿名ユーザー

- view
だれでも歓迎! 編集

アウトプットフィルタ

テンプレートがdisplay()又はfetch()を経由して呼び出された時、出力は1つ又は複数のアウトプットフィルタを通して送られます。これはポストフィルタと異なります。コンパイルされたテンプレートがポストフィルタによって、テンプレートがディスクに保存される前に処理されるのに対し、アウトプットフィルタはテンプレートが実行される時にその出力を処理します。

アウトプットフィルタはregister_outputfilterによって動的に登録されるか、load_filter()又は$autoload_filters変数によってプラグインディレクトリから読み込まれます。Smartyは内部でユーザ定義関数の第1パラメータにテンプレートの出力を渡すので、関数内で処理を行った後にその結果のソースコードを戻り値として返すようにします。

例 14-4. アウトプットフィルタを使用する

<?php
 // このユーザ定義関数をアプリケーションに加える
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;
}

 // アウトプットフィルタを登録する
$smarty->register_outputfilter("protect_email");
$smarty->display("index.tpl");

 // これによりテンプレート出力に含まれるいくつかのemailアドレスは
 // スパムボットからシンプルな保護を受けるでしょう
?>

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

記事メニュー
目安箱バナー