Get Smarty

Donate

Paypal

Smarty Icon

You may use the Smarty logo according to the trademark notice.

Smarty Template Engine Smarty Template Engine

For sponsorship, advertising, news or other inquiries, contact us at:

Sites Using Smarty

Advertisement

アウトプットフィルタ

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

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

Example 15.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アドレスは
// スパムボットからシンプルな保護を受けるでしょう
?>

    

register_outputfilter()load_filter()$autoload_filtersポストフィルタ および $plugins_dir も参照してください。

Comments
No comments for this page.

Advertisement

Sponsors [info]

Sponsors