fc2ブログ

price-change:blog

色んな情報テンコモリ

CodeIgniter Validation クラスの最大最小文字数チェックをマルチバイト対応化

デフォルトではマルチバイト対応してないので、自分で対応させてみた。やり方は簡単。Validation クラスを継承してマルチバイト対応に書き換える(オーバーライド)だけよん。

ただ、継承する場合は決まり事があるので注意してね。継承する自クラス名の頭に MY_ 、継承元の親クラス名の頭に CI_ を付けなきゃだめよ。あと、自クラスでコンストラクタを呼ぶ場合は、コンストラクタの中で親クラスのコンストラクタを呼び出しましょう。


<?php

class MY_Validation extends CI_Validation
{

	function min_length($str, $val)
	{
		$CI =& get_instance();

		if (preg_match("/[^0-9]/", $val))
		{
			return FALSE;
		}
	
		return (mb_strlen($str, $CI->config->item('charset')) < $val) ? FALSE : TRUE;
	}


	function max_length($str, $val)
	{
		$CI =& get_instance();

		if (preg_match("/[^0-9]/", $val))
		{
			return FALSE;
		}
		return (mb_strlen($str, $CI->config->item('charset')) > $val) ? FALSE : TRUE;
	}

}

?>

作成した継承クラス MY_Validation.php は、application/libraries フォルダ内に 放り込めば自動で読み込んでくれますわ。

スポンサーサイト



テーマ:PHP - ジャンル:コンピュータ

トラックバック

トラックバックURLはこちら
http://pricewave.blog110.fc2.com/tb.php/16-5beedd0a
この記事にトラックバックする(FC2ブログユーザー)