/** 18位身份证号码校验 * @param $number * @return bool true校验通过 false校验不通过 */ function idCardVerify($number): bool { if(strlen($number) != 18) return false; //权限校验系数 $ls = array( 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1 ); $sum = 0; for($i=0;$i<17;$i++) $sum += $ls[$i] * $number[$i]; $sum_remainder = $sum % 11; if($number[17] == 'X' && $sum_remainder == 2) return true; elseif (($sum_remainder + $number[17])%11 ==1) return true; else return false; }