php怎么看身份证
时间 : 2023-03-30 08:40:02声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性
在 PHP 中,可以通过正则表达式来验证身份证号码的有效性,以下是具体实现:
```php
function is_valid_id_number($id_number) {
$pattern = '/^\d{17}[\dXx]$/';
if (!preg_match($pattern, $id_number)) {
return false;
}
$digits = str_split($id_number);
$weights = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
$checksums = array(1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2);
$sum = 0;
for ($i = 0; $i < 17; $i++) {
$sum += $digits[$i] * $weights[$i];
}
$mod = $sum % 11;
if ($checksums[$mod] != strtoupper($digits[17])) {
return false;
}
return true;
}
上述代码中,首先使用正则表达式检查身份证号码是否符合18位数字或大写字母“X”的格式要求。然后,计算出身份证号码前17位数字的加权和,并将其除以11求余数。最后,验证得到的校验码是否与身份证号码的最后一位相同。
使用上述函数,可以很方便地验证身份证号码的有效性,如下所示:
```php
if (is_valid_id_number('110101200001013093')) {
echo 'Valid id number';
} else {
echo 'Invalid id number';
}
在实际使用中,也可以结合其他验证方式,如长度判断、地区码校验等,来提高身份证号码的验证准确性。
要验证身份证号码是否合法,可以使用PHP内置的函数进行验证。PHP语言中可以使用正则表达式匹配身份证号码的格式是否正确,只有匹配成功才表示身份证号码合法。
下面是一个简单的身份证号码验证的PHP代码示例:
function checkIdCard($idcard) {
// 加权因子
$factor = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1);
// 校验位
$verify_number = array('1','0','X','9','8','7','6','5','4','3','2');
// 长度15位或18位
if (strlen($idcard) != 15 && strlen($idcard) != 18) {
return false;
}
// 18位身份证需要验证最后一位校验位
if (strlen($idcard) == 18) {
$idcard_base = substr($idcard, 0, 17);
$idcard_verify_number = substr($idcard, 17, 1);
$sum = 0;
for ($i = 0; $i < 17; $i++) {
$sum += substr($idcard_base, $i, 1) * $factor[$i];
}
$mod = $sum % 11;
if ($verify_number[$mod] != strtoupper($idcard_verify_number)) {
return false;
}
}
return true;
}
该函数首先判断身份证号码的长度是否为15位或18位,如果不是则直接返回false。然后对于18位身份证需要验证最后一位校验位是否正确,通过一些加权运算和校验位的验证,如果验证失败则返回false,否则返回true。
使用方法:
$idcard = '31010119800101001X';
if (checkIdCard($idcard)) {
echo '该身份证号码合法!';
} else {
echo '该身份证号码不合法!';
}
在实际使用时,仅仅验证身份证号码的格式并不能完全保证其可靠性,可能还需要与公安部门进行进一步的验证才能确定其真实性。
上一篇
php中怎么删除多行数据
下一篇
爱他美php怎么样
https/SSL证书广告优选IDC>>
推荐主题模板更多>>
推荐文章