|
- <?php
- /**
- *
- * ============================================================================
- * * 版权所有 蜘蛛出行 * *
- * 网站地址: http://www.zhizhuchuxing.com
- * ----------------------------------------------------------------------------
- * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和
- * 使用;不允许对程序代码以任何形式任何目的的再发布。
- * ============================================================================
- * Author By: 张帅
- * PhpStorm CheckData.php
- * Create By 2017/4/14 16:21 $
- */
-
- namespace common\models;
-
-
- class CheckData
- {
- /**
- * Function Description:检验数组元素
- * Function Name: checkArrayData
- * @param $array
- * @param array $key_array
- *
- * @return bool
- *
- * @author 张帅
- */
- public function checkArrayData($array, $key_array = [[['key', 'key'], 'type'], [['key', 'key'], 'type']])
- {
- foreach ($key_array as $key => $vel) {
- switch ($vel[1]) {
- //必有且不为空
- case 1:
- foreach ($vel[0] as $k => $v) {
- if (!isset($array[$v]) || empty($array[$v])){
- return false;
- }
- }
- break;
- //必有切不为空,0 且必须为数字
- case 2:
- foreach ($vel[0] as $k => $v) {
- if (!isset($array[$v]) || empty($array[$v]) || !is_numeric($array[$v])){
- return false;
- }
- }
- break;
- //不必有 有则比为数字
- case 3:
- foreach ($vel[0] as $k => $v) {
- if (isset($array[$v]) && !is_numeric($array[$v])){
- return false;
- }
- }
- break;
- //必有切不为空,0 且必须为整数
- case 4:
- foreach ($vel[0] as $k => $v) {
- if (!isset($array[$v]) || empty($array[$v]) || !is_int($array[$v]+0)){
- return false;
- }
- }
- break;
- //存在且数量>0
- case 5:
- foreach ($vel[0] as $k => $v) {
- if (!isset($array[$v]) || count($array[$v]) == 0){
- return false;
- }
- }
- break;
- //必须是有且是****-**-**
- case 6:
- foreach ($vel[0] as $k => $v) {
- if (!isset($array[$v]) || !preg_match("/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/",$array[$v])){
- return false;
- }
- }
- break;
- //必须是有且是价格(最多二位小数)
- case 7:
- foreach ($vel[0] as $k => $v) {
- if (!isset($array[$v]) || !preg_match('/(^[1-9]\d*(\.\d{1,2})?$)|(^[0]{1}(\.\d{1,2})?$)/',$array[$v])){
- return false;
- }
- }
- break;
- //必须是有且是手机
- case 8:
- foreach ($vel[0] as $k => $v) {
- if (!isset($array[$v]) || !preg_match('/^(0|86|17951)?(13[0-9]|15[0-9]|17[0-9]|18[0-9]|14[0-9])[0-9]{8}$/',$array[$v])){
- return false;
- }
- }
- break;
- //必须是有且是邮箱
- case 9:
- foreach ($vel[0] as $k => $v) {
- if (!isset($array[$v]) || !preg_match('/w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*/',$array[$v])){
- return false;
- }
- }
- break;
- //必须是有且是身份证号(中国大陆)
- case 10:
- foreach ($vel[0] as $k => $v) {
- if (!isset($array[$v]) || !preg_match('/^\d{15,15}$|^\d{17,17}([0-9]|[Xx])$/',$array[$v])){
- return false;
- }
- }
- break;
- //必有且是标准时间格式09:02
- case 11:
- foreach ($vel[0] as $k => $v) {
- if (!isset($array[$v]) || !preg_match('/^(0[0-9]|1[0-9]|2[0-3])\:(0[0-9]|[1-5][0-9])$/',$array[$v])){
- return false;
- }
- }
- break;
- }
- }
- return true;
- }
- }
|