在项目开发中经常用到的全局函数、正则(持续更新)
//打印函数 function p($data , $type = 1, $die = false) { echo '<pre>'; if($type == 1) var_dump($data); else print_r($data); echo '</pre>'; if($die) die; }
//#####################################一些验证函数############################
// 是否合法的日期格式(Y-m-d) function is_date($date = '') { $time = strtotime($date); return is_positive_integer($time) && date('Y-m-d', $time) == $date; } // 是否合法的日期时间格式(Y-m-d H:i:s) function is_time($datetime = '') { $time = strtotime($datetime); return is_positive_integer($time) && date('Y-m-d H:i:s', $time) == $datetime; } // 是否正整数 function is_positive_integer($num = 0) { return is_numeric($num) && $num == (int) $num && $num > 0; } // 是否非空字符串 function is_not_empty_string($str = '') { return is_string($str) && $str != ''; } // 是否非空数组 function is_not_empty_array($arr = array()) { return is_array($arr) && !empty($arr); }
//追加log日志 function add_file_log($txt = '',$del = false) { if($del) unlink('log_info.txt'); file_put_contents('log_info.txt', $txt."\r\n", FILE_APPEND); }
//################################数组的排序###############################
/** * 按照指定键名对二维数组排序,若是要排序的字段中有重复值,此方法慎用 * $array 传过来的数组 * $key 指定的键名 * $type 指定的排序类型 asc 升序,desc 降序 */ function orderArray ($array = array(), $key = 'id', $type = 'asc') { $arr = array(); $list = array(); foreach($array as $v){ $arr[$v[$key]] = $v[$key]; $list[$v[$key]] = $v; } if($type == 'asc'){ asort($arr); }else{ arsort($arr); } $newarr =array(); foreach($arr as $k => $v){ $newarr[] =$list[$k]; } return $newarr; } //要排序的key 有重复值 function RorderArray( $array = [], $key = '', $order = 'asc' ){ $sort = $order == 'asc' ? 'SORT_ASC' : 'SORT_DESC'; $arrSort = array(); foreach($array AS $uniqid => $row){ foreach($row AS $k=>$value){ $arrSort[$k][$uniqid] = $value; } } array_multisort($arrSort[$key], constant($sort), $array); return $array; }
正则表达式
/** * 验证手机号 */ public static function checkPhone($phone = '') { $flag = false; if (empty($phone)) { return $flag; } $reg = "/^1[3456789]{1}[0-9]{9}$/"; if (preg_match($reg, $phone)) { $flag = true; } return $flag; } /** * 验证是否电信手机 * //133|153|180|181|189| * @param $phone */ public static function isCTCCPhone($phone) { $flag = false; $prefix = array(133, 153, 180, 181, 189,199); if (!empty($phone) && self::checkPhone($phone)) { $phone_pre = substr($phone, 0, 3); if (in_array($phone_pre, $prefix)) { $flag = true; } } return $flag; }