validate.php
<?php /*----------------------------------------------------------------------------- cheetan is licensed under the MIT license. copyright (c) 2006 cheetan all right reserved. http://php.cheetan.net/ -----------------------------------------------------------------------------*/ class CValidate extends CObject { /* * 値が空欄ならエラーを返します。 * * @param string チェックする文字列 * @param string エラーとして表示させる文字列 エラーをbooleanで受け取りたいときにはブランクにする * @return string エラー文言表示またはboolean */ function notempty( $data, $errmsg = "" ) { return $this->_check( ( $data !== '' ), $errmsg ); } /* * 値が空欄ならエラーを返します。 * * @param string チェックする文字列 * @param number 値域の最小値 * @param number 値域の最大値 * @param string エラーとして表示させる文字列 エラーをbooleanで受け取りたいときにはブランクにする * @return string エラー文言表示またはboolean */ function len( $data, $min, $max, $errmsg = "" ) { $len = strlen( $data ); $ret = ( $min <= $len && $len <= $max ) ? 1 : 0; return $this->_check( $ret, $errmsg ); } /* * 数値かどうかを判断します。 * * @param string チェックする文字列 * @param string エラーとして表示させる文字列 エラーをbooleanで受け取りたいときにはブランクにする * @return string エラー文言表示またはboolean */ function number( $data, $errmsg = "" ) { // 意図する判断はできないかも // 1.234e10とかも通るので注意 return $this->_check( is_numeric( $data ), $errmsg ); } /* * 半角英数かどうかを判断します。 * * @param string チェックする文字列 * @param string エラーとして表示させる文字列 エラーをbooleanで受け取りたいときにはブランクにする * @return string エラー文言表示またはboolean */ function eisu( $data, $errmsg = "" ) { // 容量を少なくしたいなら // return $this->_check( preg_match("/^[0-9a-z]+$/i",$data), $errmsg ); // にする、ただ2バイトしか変わらない。 return $this->_check( preg_match("/^[0-9a-zA-Z]+$/",$data), $errmsg ); } /* * メールアドレスとして妥当かどうかを判断します。 * * @param string チェックする文字列 * @param string エラーとして表示させる文字列 エラーをbooleanで受け取りたいときにはブランクにする * @return string エラー文言表示またはboolean */ function email( $data, $errmsg = "" ) { // ここは突っ込みどころ満載 // ローカルパート(@より前)はオイトイテ // // ホスト名の仕様は、ピリオドで区切られた各名称は63文字以下、全体として255文字以下で命名される。 // [a-z0-9][a-z0-9\\.\\-]{0,63} // これだと最大64文字になる // 全体として255文字以下というのは無視 // [a-z]{2,4}というのがあれば com|org|net|biz|info|name|net|pro|aero|coop| は必要ない return $this->_check( preg_match( '/\\A(?:^([a-z0-9][a-z0-9_\\-\\.\\+]*)@([a-z0-9][a-z0-9\\.\\-]{0,63}\\.(com|org|net|biz|info|name|net|pro|aero|coop|museum|[a-z]{2,4}))$)\\z/i', $data ), $errmsg ); } /* * エラーの挙動をエラー文言表示かbooleanか振り分けます。 * * @param boolean チェックする文字列 * @param string エラーとして表示させる文字列 エラーをbooleanで受け取りたいときにはブランクにする * @return string|boolean エラー文言表示またはboolean */ function _check( $b, $errmsg ) { if( $b ) { if( $errmsg ) return ""; else return TRUE; } else { if( $errmsg ) return $errmsg; else return FALSE; } } } ?>
関連記事
- object.php
- database.php
- model.php
- sanitize.php
- view.php
- dispatch.php
- controller.php
- boot.php
- cheetan.php
スポンサーリンク