...
|
...
|
@@ -115,13 +115,26 @@ class Verify { |
|
|
}else{
|
|
|
$param = [$key[0],$av];
|
|
|
}
|
|
|
|
|
|
// 特殊验证
|
|
|
switch ($ak){
|
|
|
case 'array|string':{
|
|
|
$ak = 'array_or_string';
|
|
|
break;
|
|
|
}
|
|
|
case 'string|array':{
|
|
|
$ak = "array_or_string";
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// 验证规则,不能以下划线开始
|
|
|
if(str_starts_with($ak, '_') || !method_exists($verify,$ak)){
|
|
|
throw new Err($ak.':验证规则不存在',600);
|
|
|
}
|
|
|
if(!$verify->{$ak}(...$param)){
|
|
|
app()->e(
|
|
|
$verify->message[$key[0]][$ak]??['verify_'.$ak, [$verify->alias[$key[0]]??$key[0],print_r($av,true)]],
|
|
|
$verify->message[$key[0]][$ak]??['verify_'.$ak, [$verify->alias[$key[0]]??$key[0],is_array($av) ? implode(',',$av) : $av]],
|
|
|
600
|
|
|
);
|
|
|
}
|
...
|
...
|
@@ -143,6 +156,17 @@ class Verify { |
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 是否存在字段
|
|
|
* @param $key
|
|
|
* @return bool
|
|
|
* @author:dc
|
|
|
* @time 2023/3/13 14:16
|
|
|
*/
|
|
|
private function _has($key){
|
|
|
return isset($this->data[$key]);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 必须
|
|
|
* @param $key
|
|
|
* @return false
|
...
|
...
|
@@ -163,6 +187,9 @@ class Verify { |
|
|
* @time 2023/3/13 10:11
|
|
|
*/
|
|
|
public function max($key,$value):bool {
|
|
|
// 如果字段不存在,则不验证
|
|
|
if(!$this->_has($key)) return true;
|
|
|
|
|
|
return mb_strlen($this->_get($key)) <= $value;
|
|
|
}
|
|
|
|
...
|
...
|
@@ -175,6 +202,10 @@ class Verify { |
|
|
* @time 2023/3/13 10:11
|
|
|
*/
|
|
|
public function min($key,$value):bool {
|
|
|
// 如果字段不存在,则不验证
|
|
|
if(!$this->_has($key)) return true;
|
|
|
|
|
|
|
|
|
return mb_strlen($this->_get($key)) >= $value;
|
|
|
}
|
|
|
|
...
|
...
|
@@ -187,8 +218,12 @@ class Verify { |
|
|
* @author:dc
|
|
|
* @time 2023/3/13 10:11
|
|
|
*/
|
|
|
public function array($key,$value):bool {
|
|
|
return is_array($value);
|
|
|
public function array($key):bool {
|
|
|
// 如果字段不存在,则不验证
|
|
|
if(!$this->_has($key)) return true;
|
|
|
|
|
|
|
|
|
return is_array($this->_get($key));
|
|
|
}
|
|
|
|
|
|
|
...
|
...
|
@@ -201,6 +236,10 @@ class Verify { |
|
|
* @time 2023/3/13 10:15
|
|
|
*/
|
|
|
public function integer($key,$value):bool {
|
|
|
// 如果字段不存在,则不验证
|
|
|
if(!$this->_has($key)) return true;
|
|
|
|
|
|
|
|
|
return is_integer($value);
|
|
|
}
|
|
|
|
...
|
...
|
@@ -214,6 +253,9 @@ class Verify { |
|
|
* @time 2023/3/13 10:16
|
|
|
*/
|
|
|
public function number($key,$value):bool {
|
|
|
// 如果字段不存在,则不验证
|
|
|
if(!$this->_has($key)) return true;
|
|
|
|
|
|
return is_numeric($value);
|
|
|
}
|
|
|
|
...
|
...
|
@@ -227,6 +269,9 @@ class Verify { |
|
|
* @time 2023/3/13 10:20
|
|
|
*/
|
|
|
public function reg($key,$value):bool {
|
|
|
// 如果字段不存在,则不验证
|
|
|
if(!$this->_has($key)) return true;
|
|
|
|
|
|
return (bool) preg_match($value,$this->_get($key));
|
|
|
}
|
|
|
|
...
|
...
|
@@ -240,6 +285,9 @@ class Verify { |
|
|
* @time 2023/3/13 10:31
|
|
|
*/
|
|
|
public function between($key,$value){
|
|
|
// 如果字段不存在,则不验证
|
|
|
if(!$this->_has($key)) return true;
|
|
|
|
|
|
$data = $this->_get($key);
|
|
|
return $data >= $value[0] && $data <= $value[1];
|
|
|
}
|
...
|
...
|
@@ -253,6 +301,9 @@ class Verify { |
|
|
* @time 2023/3/13 10:55
|
|
|
*/
|
|
|
public function email($key){
|
|
|
// 如果字段不存在,则不验证
|
|
|
if(!$this->_has($key)) return true;
|
|
|
|
|
|
$emails = $this->_get($key);
|
|
|
if(is_array($emails)){
|
|
|
foreach ($emails as $email){
|
...
|
...
|
@@ -273,6 +324,9 @@ class Verify { |
|
|
* @time 2023/3/13 11:06
|
|
|
*/
|
|
|
public function mobile($key){
|
|
|
// 如果字段不存在,则不验证
|
|
|
if(!$this->_has($key)) return true;
|
|
|
|
|
|
$mobiles = $this->_get($key);
|
|
|
if(is_array($mobiles)){
|
|
|
foreach ($mobiles as $mobile){
|
...
|
...
|
@@ -285,7 +339,57 @@ class Verify { |
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 是否在数组里面
|
|
|
* @param $key
|
|
|
* @param $value
|
|
|
* @return bool
|
|
|
* @author:dc
|
|
|
* @time 2023/3/13 11:56
|
|
|
*/
|
|
|
public function in($key,$value):bool {
|
|
|
// 如果字段不存在,则不验证
|
|
|
if(!$this->_has($key)) return true;
|
|
|
|
|
|
return in_array($this->_get($key),$value);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 是否是字符串
|
|
|
* @param $key
|
|
|
* @return bool
|
|
|
* @author:dc
|
|
|
* @time 2023/3/13 13:42
|
|
|
*/
|
|
|
public function string($key):bool {
|
|
|
// 如果字段不存在,则不验证
|
|
|
if(!$this->_has($key)) return true;
|
|
|
|
|
|
return is_string($this->_get($key));
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 数组或者字符串
|
|
|
* @param $key
|
|
|
* @return bool
|
|
|
* @author:dc
|
|
|
* @time 2023/3/13 14:04
|
|
|
*/
|
|
|
public function array_or_string($key){
|
|
|
return $this->array($key) || $this->string($key);
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 文件
|
|
|
* @param $key
|
|
|
* @param $value
|
|
|
* @author:dc
|
|
|
* @time 2023/3/13 14:27
|
|
|
*/
|
|
|
public function file($key,$value){
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
} |
|
|
\ No newline at end of file |
...
|
...
|
|