文字を*で伏せる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って関数を知った。