/**
* 身份证号码验证
* @param $id
* @return bool
*/
private function isValidCard($id)
{
if (18 != strlen($id)) {
return false;
}
$weight = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
$code = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];
$mode = 0;
$ver = substr($id, -1);
if ($ver == 'x') {
$ver = 'X';
}
foreach ($weight as $key => $val) {
if ($key == 17) {
continue;
}
$digit = intval(substr($id, $key, 1));
$mode += $digit * $val;
}
$mode %= 11;
if ($ver != $code[$mode]) {
return false;
}
list($month, $day, $year) = self::getMDYFromCard($id);
$check = checkdate($month, $day, $year);
if (!$check) {
return false;
php 身份证号码处理相关函数
最新推荐文章于 2022-01-28 11:27:53 发布