アウトプットフィルタプラグイン (プラグインによる Smarty の拡張) - PHPプロ!マニュアル

Smartyマニュアル

プラグインによる Smarty の拡張 - アウトプットフィルタプラグイン

アウトプットフィルタプラグイン

アウトプットフィルタプラグインは、テンプレートが読み込まれて実行された後 (しかしその出力が表示される前)にテンプレートの出力を操作します。

string smarty_outputfilter_name (string $template_output, object &$smarty)

アウトプットフィルタの第1パラメータは、処理を行うテンプレート出力です。 第2パラメータは、プラグインを呼び出したSmartyのインスタンスです。 このプラグインは戻り値に、修正されたテンプレート出力を返すようにして下さい。

例 16-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);
 }
?>

register_outputfilter() および unregister_outputfilter() も参照してください。



Pick Up Q&A

Q
array_mergeの再帰処理の動作について
 このエントリーをはてなブックマークに追加 
A
>1個になったとき$leftを返しますが、 >このとき、最終的な$leftはnullになるかと思います。 いいえ、最後は「渡された配列をそのまま」返します。要素が2以上あるときとの違いは(並べ替えずに戻るので...

>>続きを読む

再帰関数は最初の内は混乱しますが、非常に上手く使える場面もいずれ出てきます。これを機会に学んでいけるといいですね。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)