无需言 做自己 业 ,精于勤 荒于嬉.
- MYSQL 创建用户及数据库,并赋予权限
-
发表日期:2022-08-12 17:01:56 | 来源: | 分类:MYSQL
-
示例1
#创建一个名为 testUser 的用户,%指任意主机可以连接 或 127.0.0.1 指定ip连接 #需要特别注意的是:'testUser'@'%'与'testUser'@'localhost' 看起来像是一个用户,事实上要注意 这是两个用户!可以有不同的权限 CREATE USER 'testUser'@'%' IDENTIFIED WITH mysql_native_password; #给这个用户赋予一些查询mysql环境的权限 GRANT USAGE ON *.* TO 'testUser'@'%' REQUIRE NONE WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0; #给这个用户设置密码 SET PASSWORD FOR 'testUser'@'%' = '123456'; #创建数据库 testDB CREATE DATABASE IF NOT EXISTS `testDB`; #把 testDB库的所有权限 赋予 'testUser'@'%'的登录用户 GRANT ALL PRIVILEGES ON `testDB`.* TO 'testUser'@'%'; # `testDB\_%`.* TO 'testDB'@'%'; 这里可以使用通配符% 代表 把testDB_开头的数据库都给这个用户
- PHP杂项 ip白黑名单验证
-
发表日期:2022-08-06 16:12:05 | 来源: | 分类:PHP杂项
-
示例1
function validate_ip($ip, $allow_ip_map) { if (in_array($ip, $allow_ip_map)) { return true; } else { $flag = false; $ip_pos = explode('.', $ip); foreach ($allow_ip_map as $val) { if (strpos($val, '-') !== false) {//范围 $ip_range = explode('-', $val); if (ip2long($ip_range[0]) * -1 >= ip2long($ip) * -1 && ip2long($ip_range[1]) * -1 <= ip2long($ip) * -1) { $flag = true; break; } } else {//单个 if (strpos($val, '*') !== false) {//发现有*号替代符 $arr = explode('.', $val); $flag = true;//用于记录循环检测中是否有匹配成功的 for ($i = 0; $i < 4; $i++) { if ($arr[$i] != '*') {//不等于* 就要进来检测,如果为*符号替代符就不检查 if ($arr[$i] != $ip_pos[$i]) { $flag = false; break;//终止检查本个ip 继续检查下一个ip } } } if ($flag) {//如果是true则终止匹配 break; } } } } return $flag; } }
- PHP杂项 自实现getallheaders函数 获取header信息
-
发表日期:2022-08-06 16:10:41 | 来源: | 分类:PHP杂项
-
示例1
if (!function_exists('getallheaders')) { /** * @return mixed * @deprecated 推荐使用request()->header() */ function getallheaders() { foreach ($_SERVER as $name => $value) { if (substr($name, 0, 5) == 'HTTP_') { $headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value; } } return $headers; } }
- PHP杂项 随机颜色
-
发表日期:2022-08-06 16:09:53 | 来源: | 分类:PHP杂项
-
示例1
function random_color() { $rand = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'); $color = '#' . $rand[rand(0, 15)] . $rand[rand(0, 15)] . $rand[rand(0, 15)] . $rand[rand(0, 15)] . $rand[rand(0, 15)] . $rand[rand(0, 15)]; return $color; }
- PHP杂项 中文全角半角互转
-
发表日期:2022-08-06 16:06:03 | 来源: | 分类:PHP杂项
-
示例1
/** * 半角全角互转 * @param string $str * @param string $args2 0半角到全角 1全角到半角 * @return string **/ function SBC_DBC($str, $args2=0) { $DBC = array( '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '-', ' ', ':', '.', ',', '/', '%', '#', '!', '@', '&', '(', ')', '<', '>', '"', ''', '?', '[', ']', '{', '}', '\', '|', '+', '=', '_', '^', '¥', ' ̄', '`' ); $SBC = array( //半角 '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '-', ' ', ':', '.', ',', '/', '%', '#', '!', '@', '&', '(', ')', '<', '>', '"', '\'', '?', '[', ']', '{', '}', '\\', '|', '+', '=', '_', '^', '$', '~', '`' ); if ($args2 == 0) return str_replace($SBC, $DBC, $str); //半角到全角 if ($args2 == 1) return str_replace($DBC, $SBC, $str); //全角到半角 else return false; }
- PHP杂项 字符和unicode互转
-
发表日期:2022-08-06 16:03:20 | 来源: | 分类:PHP杂项
-
示例1
/** * 将unicode转换成字符 * @param int $unicode * @return string UTF-8字符 **/ function unicode2Char($unicode) { if ($unicode < 128) return chr($unicode); if ($unicode < 2048) return chr(($unicode >> 6) + 192) . chr(($unicode & 63) + 128); if ($unicode < 65536) return chr(($unicode >> 12) + 224) . chr((($unicode >> 6) & 63) + 128) . chr(($unicode & 63) + 128); if ($unicode < 2097152) return chr(($unicode >> 18) + 240) . chr((($unicode >> 12) & 63) + 128) . chr((($unicode >> 6) & 63) + 128) . chr(($unicode & 63) + 128); return false; } /** * 将字符转换成unicode * @param string $char 必须是UTF-8字符 * @return int **/ function char2Unicode($char) { switch (strlen($char)) { case 1 : return ord($char); case 2 : return (ord($char{1}) & 63) | ((ord($char{0}) & 31) << 6); case 3 : return (ord($char{2}) & 63) | ((ord($char{1}) & 63) << 6) | ((ord($char{0}) & 15) << 12); case 4 : return (ord($char{3}) & 63) | ((ord($char{2}) & 63) << 6) | ((ord($char{1}) & 63) << 12) | ((ord($char{0}) & 7) << 18); default : trigger_error('Character is not UTF-8!', E_USER_WARNING); return false; } }
- PHP杂项 日期时间友好展示为今天/昨天/前天/分钟/小时/天前
-
发表日期:2022-08-06 16:00:35 | 来源: | 分类:PHP杂项
-
示例1
function datetime_friendly($datetime) { $time = strtotime($datetime); $second = time() - $time; if ($second < 60) { $str = '刚刚'; } elseif ($second < 60 * 60) { $min = floor($second / 60); $str = $min . ' 分钟前'; } elseif ($second < 60 * 60 * 24) { $h = floor($second / (60 * 60)); $str = $h . ' 小时前'; } elseif ($second < 60 * 60 * 24 * 3) { $d = floor($second / (60 * 60 * 24)); $rtime = date("H:i", $time); if ($d == 1) $str = '昨天 ' . $rtime; else $str = '前天 ' . $rtime; } elseif ($time > mktime(0, 0, 0, 1, 1, date('Y'))) { $str = date("m月d日", $time); } else { $str = date("Y年m月d日", $time); } return $str; }
- PHP杂项 递归创建多级目录
-
发表日期:2022-08-06 15:58:05 | 来源: | 分类:PHP杂项
-
示例1
/** * 检测目录是否存在/创建多级目录 * @param String $path 目录路径[D:/a/b] or [a/b/c] or [./a/b] or [/a/b/c] or [../../a/b] * @return boolean 目录是否存在/多级目录是否创建成功 */ function quick_make_dirs($path) { if (is_dir($path)) return true; $path = str_replace(ROOT_PATH, '', preg_replace('/[\\\|\/]+/', DS, $path)); $dirs = explode(DS, $path); $dir = ROOT_PATH; for ($i = 0; $i < count($dirs); $i++) { if ($dirs [$i] == '') continue; $dir .= $dirs [$i] . DS; if (!is_dir($dir)) { //mkdir($dir, 0777) or TRIGGER_ERROR("!-目录[$dir]不可写,请手动设置目录权限!"); if (!mkdir($dir, 0777)) { break; } } } return is_dir($dir) ? true : false; }
- PHP杂项 字符串截取追加...
-
发表日期:2022-08-06 15:51:11 | 来源: | 分类:PHP杂项
-
示例1
/** * 字符串截取 * @param String $str 要截取的字符串 * @param int $start 开始位置 * @param int $length 截取长度 * @param String $ellipsis 省略符 * @return String 截取后的字符串 */ function quick_mb_substr($str, $start, $length, $ellipsis = '...') { $str_length = mb_strlen($str, 'utf8'); if ($str_length <= $start + $length) { return mb_substr($str, $start, $str_length - $start, 'utf8'); } return mb_substr($str, $start, $length, 'utf8') . $ellipsis; }
- PHP杂项 批量反/转义特殊字符,数据库安全过滤写入,支持字符串、多维数组、对象集合
-
发表日期:2022-08-06 15:46:30 | 来源: | 分类:PHP杂项
-
示例1
/** * 批量转义特殊字符 * '&' (ampersand) becomes '&' * '"' (double quote) becomes '"' when ENT_NOQUOTES is not set. * "'" (single quote) becomes ''' (or ') only when ENT_QUOTES is set. * '<' (less than) becomes '<' * '>' (greater than) becomes '>' * * @param array|object|string $data * @return array|object|string * @example * $new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES); * echo $new; // <a href='test'>Test</a> * */ function encode_special_symbol($data) { if (is_array($data)) { foreach ($data as $key => $value) $data [$key] = encode_special_symbol($value); } elseif (is_object($data)) { foreach ($data as $key => $value) $data->$key = encode_special_symbol($value); } else { $data = htmlspecialchars(trim($data)); } return $data; } /** * 批量反转义特殊字符 * @param $data * @return array|string */ function decode_special_symbol($data) { if (is_array($data)) { foreach ($data as $key => $value) $data [$key] = decode_special_symbol($value); } elseif (is_object($data)) { foreach ($data as $key => $value) $data->$key = decode_special_symbol($value); } else { $data = htmlspecialchars_decode($data); } return $data; }
- PHP杂项 压缩HTML,去换行空格,注释
-
发表日期:2022-08-06 15:43:48 | 来源: | 分类:PHP杂项
-
示例1
function quick_compress_html($html) { $html = str_replace(["\r\n", "\n", "\t"], ['', '', ''], $html); $_pattern = array("/> *([^ ]*) *</", "/[\s]+/", "/<!--[^!]*-->/", "/\" /", "/ \"/", "'/\*[^*]*\*/'", "/ \/\*[^.]*\*\//"); $_replace = array(">\\1<", " ", "", "\"", "\"", " ", " "); return preg_replace($_pattern, $_replace, $html); }
- PHP杂项 获取文章html中的img标签图片src地址
-
发表日期:2022-08-06 15:42:56 | 来源: | 分类:PHP杂项
-
示例1
/** * 获取文章中的图片 * @param $content * @return mixed */ function html_get_img($content) { // 强力模式 // preg_match_all('#<[img|IMG].*?[src|SRC]=[$"|$\'|$\s]*([^"|^\'|^\s]*)[^>]*>#i', $content, $match); preg_match_all('#<[img].*?[src]="([^"]*)[^>]*>#i', $content, $match); return $match[1]; }
- PHP杂项 html过滤标签空格提取纯文本text
-
发表日期:2022-08-06 15:41:37 | 来源: | 分类:PHP杂项
-
示例1
/** * html 转换成text 过滤html标签空格 * @param $html * @param null|string $html_tag 要保留的标签 * @return string */ function html2text($html, $html_tag = null) { return trim(preg_replace("/[ ]+/", " ", str_replace([" ", " "], " ", strip_tags($html, $html_tag)))); }
- PHP杂项 自实现http_build_url 函数
-
发表日期:2022-08-06 15:39:34 | 来源: | 分类:PHP杂项
-
示例1
if (!function_exists('http_build_url')) { /** * 构建URL * @param string $url * @param array $params * @return string */ function http_build_url($url, $params) { if (!strstr($url, '?')) $url .= "?"; if (($last = strrchr($url, '&')) && $last !== '&') $url .= "&"; return $url . http_build_query($params); } }
- PHP杂项 获取浏览器类型版本及操作系统类型
-
发表日期:2022-08-06 15:31:18 | 来源: | 分类:PHP杂项
-
示例1
class Agent { /** * 获取客户端浏览器信息 添加win10 edge浏览器判断 * @param null * @return string */ public static function getBroswer() { if (isset($_SERVER['HTTP_USER_AGENT'])) { $sys = $_SERVER['HTTP_USER_AGENT']; //获取用户代理字符串 }else{ $sys = ''; //获取用户代理字符串 } if (stripos($sys, "Firefox/") > 0) { preg_match("/Firefox\/([^;)]+)+/i", $sys, $b); $exp[0] = "Firefox"; $exp[1] = $b[1]; //获取火狐浏览器的版本号 } elseif (stripos($sys, "Maxthon") > 0) { preg_match("/Maxthon\/([\d\.]+)/", $sys, $aoyou); $exp[0] = "傲游"; $exp[1] = $aoyou[1]; } elseif (stripos($sys, "MSIE") > 0) { preg_match("/MSIE\s+([^;)]+)+/i", $sys, $ie); $exp[0] = "IE"; $exp[1] = $ie[1]; //获取IE的版本号 } elseif (stripos($sys, "OPR") > 0) { preg_match("/OPR\/([\d\.]+)/", $sys, $opera); $exp[0] = "Opera"; $exp[1] = $opera[1]; } elseif (stripos($sys, "Edge") > 0) { //win10 Edge浏览器 添加了chrome内核标记 在判断Chrome之前匹配 preg_match("/Edge\/([\d\.]+)/", $sys, $Edge); $exp[0] = "Edge"; $exp[1] = $Edge[1]; } elseif (stripos($sys, "Chrome") > 0) { preg_match("/Chrome\/([\d\.]+)/", $sys, $google); $exp[0] = "Chrome"; $exp[1] = $google[1]; //获取google chrome的版本号 } elseif (stripos($sys, 'rv:') > 0 && stripos($sys, 'Gecko') > 0) { preg_match("/rv:([\d\.]+)/", $sys, $IE); $exp[0] = "IE"; $exp[1] = $IE[1]; } elseif (stripos($sys, 'Safari') > 0) { preg_match("/safari\/([^\s]+)/i", $sys, $safari); $exp[0] = "Safari"; $exp[1] = $safari[1]; } elseif (stripos($sys, 'ApiPOST') !== false) { preg_match("/apipost\/([^\s]+)/i", $sys, $ApiPOST); $exp[0] = "ApiPOST"; $exp[1] = "Runtime"; } elseif (stripos($sys, 'PostmanRuntime') !== false) { preg_match("/PostmanRuntime\/([^\s]+)/i", $sys, $Postman); $exp[0] = "Postman"; $exp[1] = $Postman[1]; } elseif (stripos($sys, 'curl') !== false) { preg_match("/curl\/([^\s]+)/i", $sys, $curl); $exp[0] = "curl"; $exp[1] = $curl[1]; } else { $exp[0] = "未知"; $exp[1] = ""; } return $exp[0] . '(' . $exp[1] . ')'; } /** * 获取客户端操作系统信息包括win10 * @param null * @return string */ public static function getOs() { if (isset($_SERVER['HTTP_USER_AGENT'])) { $agent = $_SERVER['HTTP_USER_AGENT']; //获取用户代理字符串 }else{ $agent = ''; //获取用户代理字符串 } if (preg_match('/Windows Phone/i', $agent)) { $os = 'Windows Phone'; // } else if (preg_match('/win/i', $agent) && strpos($agent, '95')) { // $os = 'Windows 95'; // } else if (preg_match('/win 9x/i', $agent) && strpos($agent, '4.90')) { // $os = 'Windows ME'; // } else if (preg_match('/win/i', $agent) && preg_match('/98/i', $agent)) { // $os = 'Windows 98'; } else if (preg_match('/win/i', $agent) && preg_match('/nt 6.0/i', $agent)) { $os = 'Windows Vista'; } else if (preg_match('/win/i', $agent) && preg_match('/nt 6.1/i', $agent)) { $os = 'Windows 7'; } else if (preg_match('/win/i', $agent) && preg_match('/nt 6.2/i', $agent)) { $os = 'Windows 8'; } else if (preg_match('/win/i', $agent) && preg_match('/nt 10.0/i', $agent)) { $os = 'Windows 10';#添加win10判断 } else if (preg_match('/win/i', $agent) && preg_match('/nt 5.1/i', $agent)) { $os = 'Windows XP'; } else if (preg_match('/win/i', $agent) && preg_match('/nt 5/i', $agent)) { $os = 'Windows 2000'; } else if (preg_match('/win/i', $agent) && preg_match('/nt/i', $agent)) { $os = 'Windows NT'; } else if (preg_match('/win/i', $agent) && preg_match('/32/i', $agent)) { $os = 'Windows 32'; } else if (preg_match('/linux/i', $agent)) { $os = 'Linux'; } else if (preg_match('/unix/i', $agent)) { $os = 'Unix'; } else if (preg_match('/sun/i', $agent) && preg_match('/os/i', $agent)) { $os = 'SunOS'; } else if (preg_match('/ibm/i', $agent) && preg_match('/os/i', $agent)) { $os = 'IBM OS/2'; } else if (preg_match('/Mac/i', $agent)) { $os = 'Mac'; } else if (preg_match('/PowerPC/i', $agent)) { $os = 'PowerPC'; } else if (preg_match('/AIX/i', $agent)) { $os = 'AIX'; } else if (preg_match('/HPUX/i', $agent)) { $os = 'HPUX'; } else if (preg_match('/NetBSD/i', $agent)) { $os = 'NetBSD'; } else if (preg_match('/BSD/i', $agent)) { $os = 'BSD'; } else if (preg_match('/OSF1/i', $agent)) { $os = 'OSF1'; } else if (preg_match('/IRIX/i', $agent)) { $os = 'IRIX'; } else if (preg_match('/FreeBSD/i', $agent)) { $os = 'FreeBSD'; } else if (preg_match('/teleport/i', $agent)) { $os = 'teleport'; } else if (preg_match('/flashget/i', $agent)) { $os = 'flashget'; } else if (preg_match('/webzip/i', $agent)) { $os = 'webzip'; } else if (preg_match('/offline/i', $agent)) { $os = 'offline'; } elseif (preg_match('/ucweb|MQQBrowser|J2ME|IUC|3GW100|LG-MMS|i60|Motorola|MAUI|m9|ME860|maui|C8500|gt|k-touch|X8|htc|GT-S5660|UNTRUSTED|SCH|tianyu|lenovo|SAMSUNG/i', $agent)) { $os = 'mobile'; } else { $os = '未知'; } return $os; } }
- PHP杂项 curl请求及注意事项
-
发表日期:2022-08-06 15:26:25 | 来源: | 分类:PHP杂项
-
示例1
function post($data, $url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20);//连接超时时间 curl_setopt($ch, CURLOPT_TIMEOUT, 30);//请求超时时间 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_POST, true);//POST请求 curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); //设置header头信息 curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Content-Type: application/json; charset=utf-8',//json请求 'token:vXBrUZ7rWE5D4P4ENnwR6GFvaG2pVgul'//比如登录信息/token信息/session信息 ]); $output = curl_exec($ch); if ($error_code = curl_errno($ch)) { //已经检查是否报错做进一步处理 $err = $error_code . ' : ' . curl_error($ch); curl_close($ch); throw new Exception($err); } curl_close($ch); return $output; }
- PHP杂项 二维数组排序
-
发表日期:2022-08-06 15:15:16 | 来源: | 分类:PHP杂项
-
示例1
/** * 升序降序排序 * @param $arr * @param $keys 要排序的字段 * @param string $type asc desc * @return array */ function array_sort($arr, $keys, $type = 'asc') { $keysvalue = $new_array = array(); foreach ($arr as $k => $v) { $keysvalue[$k] = $v[$keys]; } if ($type == 'asc') { asort($keysvalue); } else { arsort($keysvalue); } reset($keysvalue); foreach ($keysvalue as $k => $v) { $new_array[$k] = $arr[$k]; } return $new_array; }
- PHP杂项 文件字节大小换算KB、MB、GB、TB
-
发表日期:2022-08-06 15:11:53 | 来源: | 分类:PHP杂项
-
示例1
/** * 字节换算 * @param int $size 字节长度 * @param int $digits 要保留几位小数 * @return string 转换后的文件大小 */ function byteToSize($size, $digits = 2) { if ($size == 0) return '0B'; $unit = array('', 'K', 'M', 'G', 'T', 'P'); // 单位数组,是必须1024进制依次的哦。 $base = 1024; // 对数的基数 $i = floor(log($size, $base)); // 字节数对1024取对数,值向下取整。 return return round($size / pow($base, $i), $digits) . ' ' . $unit [$i] . 'B'; }
- PHP杂项 数字金额转汉字大写
-
发表日期:2022-08-06 15:10:20 | 来源: | 分类:PHP杂项
-
示例1
function amountToCn($num) { $Decimal = $num - (int)$num; $c1 = "零壹贰叁肆伍陆柒捌玖"; $c2 = "分角元拾佰仟万拾佰仟亿"; //精确到分后面就不要了,所以只留两个小数位 $num = round($num, 2); //将数字转化为整数 $num = $num * 100; if (strlen($num) > 10) { return "金额太大,请检查"; } $i = 0; $c = ""; while (1) { if ($i == 0) { //获取最后一位数字 $n = substr($num, strlen($num) - 1, 1); } else { $n = $num % 10; } //每次将最后一位数字转化为中文 $p1 = substr($c1, 3 * $n, 3); $p2 = substr($c2, 3 * $i, 3); if ($n != '0' || ($n == '0' && ($p2 == '亿' || $p2 == '万' || $p2 == '元'))) { $c = $p1 . $p2 . $c; } else { $c = $p1 . $c; } $i = $i + 1; //去掉数字最后一位了 $num = $num / 10; $num = (int)$num; //结束循环 if ($num == 0) { break; } } $j = 0; $slen = strlen($c); while ($j < $slen) { //utf8一个汉字相当3个字符 $m = substr($c, $j, 6); //处理数字中很多0的情况,每次循环去掉一个汉字“零” if ($m == '零元' || $m == '零万' || $m == '零亿' || $m == '零零') { $left = substr($c, 0, $j); $right = substr($c, $j + 3); $c = $left . $right; $j = $j - 3; $slen = $slen - 3; } $j = $j + 3; } //这个是为了去掉类似23.0中最后一个“零”字 if (substr($c, strlen($c) - 3, 3) == '零') { $c = substr($c, 0, strlen($c) - 3); } //将处理的汉字加上“整” if (empty($c)) { return "零元整"; } else { if ($Decimal > 0){ return $c ; } return $c . "整"; } }
- PHP杂项 验证身份证号是否有效
-
发表日期:2022-08-06 15:05:56 | 来源: | 分类:PHP杂项
-
示例1
public function isIdCard($id) { $id = strtoupper($id); $regx = "/(^\d{15}$)|(^\d{17}([0-9]|X)$)/"; $arr_split = array(); if (!preg_match($regx, $id)) { return FALSE; } if (15 == strlen($id)) //检查15位 { $regx = "/^(\d{6})+(\d{2})+(\d{2})+(\d{2})+(\d{3})$/"; @preg_match($regx, $id, $arr_split); //检查生日日期是否正确 $dtm_birth = "19" . $arr_split[2] . '/' . $arr_split[3] . '/' . $arr_split[4]; if (!strtotime($dtm_birth)) { return FALSE; } else { return TRUE; } } else //检查18位 { $regx = "/^(\d{6})+(\d{4})+(\d{2})+(\d{2})+(\d{3})([0-9]|X)$/"; @preg_match($regx, $id, $arr_split); $dtm_birth = $arr_split[2] . '/' . $arr_split[3] . '/' . $arr_split[4]; if (!strtotime($dtm_birth)) //检查生日日期是否正确 { return FALSE; } else { //检验18位身份证的校验码是否正确。 //校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。 $arr_int = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); $arr_ch = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); $sign = 0; for ($i = 0; $i < 17; $i++) { $b = (int)$id{$i}; $w = $arr_int[$i]; $sign += $b * $w; } $n = $sign % 11; $val_num = $arr_ch[$n]; if ($val_num != substr($id, 17, 1)) { return FALSE; } else { return TRUE; } } } }
- 前端开发(1)
- 数据库(0)
- PHP(0)
- PHP杂项(34)
- PHP基础-李炎恢系列课程(20)
- 中文函数手册(0)
- 错误处理 函数(13)
- OPcache 函数(6)
- PHP 选项/信息 函数(54)
- Zip 函数(10)
- Hash 函数(15)
- OpenSSL 函数(63)
- Date/Time 函数(51)
- 目录函数(9)
- Fileinfo 函数(6)
- iconv 函数(11)
- 文件系统函数(81)
- 多字节字符串 函数(57)
- GD 和图像处理 函数(114)
- 可交换图像信息(5)
- Math 函数(50)
- 程序执行函数(11)
- PCNTL 函数(23)
- JSON 函数(4)
- SPL 函数(15)
- URL 函数(10)
- cURL 函数(32)
- 网络 函数(33)
- FTP 函数(36)
- Session 函数(23)
- PCRE 函数(11)
- PCRE 正则语法(19)
- 数组 函数(81)
- 类/对象 函数(18)
- 函数处理 函数(13)
- 变量处理 函数(37)
- SimpleXML 函数(3)
- 杂项 函数(31)
- 字符串 函数(101)
- JAVA(0)
- Android(0)
- Linux(0)
- 其他(0)