85月/05
HTML_QuickFormのRangeルールで (02:57)
マルチバイト文字を含むテキストの文字数チェックをclientとserverで統一感がある形で実行したい場合は、HTML/QuickForm/Rule/Range.phpを
- $length = strlen($value); + $length = mb_strlen($value);
に書き換えちゃうのが一番いいのかなー。でもそれだとpear upgradeしたときに面倒なことになりかねないから、上記のような書き換えを行ったHTML_QuickForm_Rule_RangeJPクラスを別途用意しておいて、あらかじめ、
$rangejp =& new HTML_QuickForm_Rule_RangeJP();
$rr =& HTML_QuickForm_RuleRegistry::singleton();
$rr->registerRule('range', NULL, $rangejp);
$rr->registerRule('minlength', NULL, $rangejp);
$rr->registerRule('maxlength', NULL, $rangejp);
とかrange関係のルールを上書きして使った方がいいのかなー。ひとまず後者にしてみたけど、いまいち美しくない気もする。あと、これだと最終的にバイト数でチェックをしたい場合に、もう一段階ruleをかまさないとならなくなるのがじゃまくさい。
この辺の扱いをきれいにまとめる方法ってないかなー。結局、javascriptで文字列のバイト数チェックを行う関数を書いてそれを使うようにするか、あるいはマルチバイトでサイズチェックを行いたい場合は基本的にclientチェックは使うな、ってことになっちゃうのかな。
85月/05
さて連休も今日で終わりか (02:20)
ただし俺の連休はまだ続きそうだ。っつーのは、下の子供が水疱瘡にかかったため。現在ぶつぶつ怪人状態。一週間くらいは通園禁止だろうから、今週は半分くらいオクサンと手分けして休まないとならないんだろうなー。俺自身もずっと喉と鼻と頭に来る風邪を引いていて(どうやら花粉症ではないらしい)結構きつい。
ちなみにこの連休中は久しぶりにほとんどPCに触らなかった。閲覧系はそれなりにしているけれども、生産的なことはほとんど何もしていない。で、久しぶりに昨日あたりからぼつぼつ復帰準備をしているんだけど、いまいち気分が乗らないなー。引っ越しの準備もそろそろはじめないとまずいんだけどなー。