php验证18位身份证,准到必须输入正确的身份证号,

时间:2023-03-08 21:59:03
/**
* 验证18位身份证(计算方式在百度百科有)
* @param string $id 身份证
* return boolean
*/
function check_identity($id='')
{
$set = array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2);
$ver = array('1','0','x','9','8','7','6','5','4','3','2');
$arr = str_split($id);
$sum = 0;
for ($i = 0; $i < 17; $i++)
{
if (!is_numeric($arr[$i]))
{
$result['status'] = 0;
$result['info'] = '请输入18位身份证号';
return $result;
}
$sum += $arr[$i] * $set[$i];
}
$mod = $sum % 11;
if (strcasecmp($ver[$mod],$arr[17]) != 0)
{
$result['status'] = 0;
$result['info'] = '您的身份证号不符合中国公民,请检查';
return $result;
}
return 1;
}