/** * 检测生日是否正确 * * @param string $idCard * @return void */ public function checkBirthday($idCard) { $regx = '#^\d{6}(\d{4})(\d{2})(\d{2})\d{3}[0-9X]$#'; if (!preg_match($regx, $idCard, $matches)) { return false; } array_shift($matches); list($year, $month, $day) = $matches; return checkdate($month, $day, $year); }
校验码比对:
话说, 15位 转 18位 的都完全不用考虑这个方法了。
/** * 校验码比对 * * @param string $idCard * @return void */ public function checkCode($idCard) { $idCardBase = substr($idCard, 0, 17); $code = $this->genCode($idCardBase); return $idCard == ($idCardBase . $code); }
完整代码
传送门:IDCardFilter
最后
这个功能最多算是新颖吧,毕竟之前没有接触过。很开心代码片段里又增加了新的成员。
以上所述是小编给大家介绍的PHP校验15位和18位身份证号的类封装,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
您可能感兴趣的文章: