文字を*で伏せるsmartyプラグイン

該当文字と同じ長さの*で伏せるsmartyプラグイン

以下のファイル名で保存して。
smarty/plugins/modifier.hide_taboo.php

<?php
function smarty_modifier_hide_taboo($string) {
    $tabooRegexp = '/(ごはん|めんどくさい)/ie';
    $string = preg_replace($tabooRegexp, "str_repeat('●', mb_strlen('\${1}'))", $string);
    }
    return $string;
}

?>

$tabooRegexpの書き方は文字列と配列でどっちが早いんだろう。


使用例。テンプレート側。

{'ごはん食べるのめんどくさい'|hide_taboo} // ●●●食べるの●●●●●●

なんなのこの例文。すごく無気力な感じ。


プラグイン名のhide_tabooはしっくり来てない。
うまく「伏せる」っていうニュアンスを出せる英語が分かんない。
blind_tabooの方がいいのかな。


あとこんなもの作っておいてなんだけど、しっかり伏せたいなら何書いてるか分からないように「●●●」固定の方がいいな。
"fuck you"が"●●●● you"になっても何書いてるか分かるから。


関係ないけどこれ作ってるときにstr_repeatって関数を知った。