php语言的技术参数,PHP语言 一个好用的参数验证类

本文主要向大家介绍了PHP语言 一个好用的参数验证类,通过具体的实例向大家展示,希望对大家学习php语言有所帮助。

/**

* 参数验证类

* libraries_include("","Validator.class.php");

* @author lizhiqiang

*/class Validator{

/**

* 检查数据

* @param string $value     需要验证的数值

* @param string $ruleItem  验证规则

* 例子: libraries_include("","Validator.class.php");

*       Validator::check_param(100,"intval");

*       Validator::check_param(100,array("intval",array("length"=>array(0,6))));

*/

static function check_param($value="",$ruleItem)

{

$ruleResult = array();

//如果没有设置规则 则返回true

if($ruleItem == null || $ruleItem == "")

{

return true;

}

//如果是单条规则

if(!is_array($ruleItem))

{

$ruleItem = trim($ruleItem);

if(method_exists(Validator,$ruleItem))

{

return self::$ruleItem($value);

}

return true;

}

//如果是多条规则 则逐一进行验证

foreach($ruleItem as $ruleKey => $ruleValue)

{

$ruleKey = trim($ruleKey);

//判断检查规则中是否含有参数

if(!is_array($ruleValue))

{

if(method_exists(Validator,$ruleKey))

{

$ruleResult[] = self::$ruleKey($value);

}else{

$ruleResult[] = true;

}

}else{

if(method_exists(Validator,$ruleKey))

{

$ruleResult[] = self::$ruleKey($value,$ruleValue);

}else{

$ruleResult[] = true;

}

}

}

//检测多条规则的正确性

if(in_array(false,$ruleResult))

{

return false;

}else{

return true;

}

}

/**

* 检测参数是否为数组

* @param $value

* @return bool

*/

static public function is_array($value)

{

$result = false;

if(!self::required($value)) return false;

if(is_array($value))

{

$result = true;

}

return $result;

}

/**

* 检测参数是否存在于数组中

* @param  $value 参数值

* @param  $data  数组

* @return bool

*/

static public function in_array($value,$data)

{

$result = false;

if(!self::required($value)) return false;

if(in_array($value,$data))

{

$result = true;

}

return $result;

}

/**

* 检测参数是否为空

* @param  string $value 参数

* @return bool

*/

static public function required($value)

{

if (!is_array($value))

{

return (trim($value) == '') ? FALSE : TRUE;

}

else {

return ( ! empty($value));

}

}

/**

* 字符串验证

* @param $value 参数值

*/

static function string($value)

{

$result = false;

if(!self::required($value)) return false;

if(is_string($value))

{

$result = true;

}

return $result;

}

/**

* 整数验证

* @param $value 参数值

*/

static function intval($value)

{

$result = false;

if(self::number($value,"intval"))

{

$result = true;

}

return $result;

}

/**

* 浮点型验证

* @param $value 参数值

*/

static function float($value)

{

$result = false;

if(self::number($value,"float"))

{

$result = true;

}

return $result;

}

/**

* 数字验证

* @param $value 参数值

* @param $flag  intval 整数  float 浮点数 numeric 数字

*/

static function number($value,$flag)

{

$result = false;

if(!self::required($value)) return false;

if(!in_array($flag,array("intval","float","numeric")))

{

return false;

}

switch($flag)

{

case "intval":

$result = (string)(int)$value == (string)$value ? true : false;

$ss=1;

break;

case "float":

$result = is_float($value);

break;

case "numeric":

$result = is_numeric($value);

break;

}

return $result;

}

/**

* 长度验证

* @param $value 参数值

* @param array $range 取值范围

*/

static function length($value,$range=array())

{

$result = false;

if(!self::required($value)) return false;

$length  = mb_strlen($value);

list($min,$max) = $range;

if($length>=$min and $length<=$max)

{

$result = true;

}

return $result;

}

/**

* 手机号验证

* @param  $value 参数值

* @return bool

*/

static function phone($value)

{

$result = false;

if(!self::required($value)) return false;

$exp = "/(^1[3|4|5|7|8][0-9]{9}$)/";

if(preg_match($exp,$value))

{

$result = true;

}

return $result;

}

/**

* 邮箱验证

* @param  $value 参数值

* @return bool

*/

static function email($value)

{

$result = false;

if(!self::required($value)) return false;

$exp = "/([a-z0-9]*[-_\.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]{2,3}([\.][a-z]{2})?/i";

if(preg_match($exp,$value))

{

$result = true;

}

return $result;

}

/**

* 验证中文

* @param $value 参数值

*/

static function chinese($value,$charset)

{

$result = false;

if(strtolower($charset) == 'gb2312')

{

$exp = "/^[".chr(0xa1)."-".chr(0xff)."]+$/";

}else{

$exp = "/^[x{4e00}-x{9fa5}]+$/u";

}

if(preg_match($exp,$value))

{

$result = true;

}

return $result;

}

}

以上就介绍了PHP的相关知识,希望对PHP有兴趣的朋友有所帮助。了解更多内容,请关注职坐标编程语言PHP频道!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值