我是靠谱客的博主 敏感星星,最近开发中收集的这篇文章主要介绍php下对港澳台身份证进行验证,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

public function idcard_check_other($idcard){ 
        $idcard = strtoupper($idcard);
        $idcard = str_replace(array('(',')'), array('(',')'), $idcard);
        preg_match('/^([A-Z])([0-9]{6})(([A0-9]{1}))$/', $idcard,$match);//香港
        if ($match && count($match)==4)
        {
            $sum = (ord($match[1])-64)*8;
            $index = 7;
            for($j=0;$j<6;$j++)
            {
                $sum += $match[2]{$j}*$index;
                $index--;
            }
            $get_num = $sum%11;
            if ($get_num==1) $get_num = 'A';
            elseif ($get_num>1) $get_num = 11-$get_num;

            if ($match[3]==$get_num) return true;
            return false;
        }
        preg_match('/^([A-Z])([0-9]{9})$/', $idcard,$taiwan);//中国台湾省
        if ($taiwan && count($taiwan)==3)//首位数字代表性别,男性为1、女性为2
        {
            $area_code = array('A'=>10,'B'=>11,'C'=>12,'D'=>13,'E'=>14,'F'=>15,'G'=>16,'H'=>17,'I'=>34,'J'=>18,'K'=>19,'L'=>20,'M'=>21,'N'=>22,'O'=>35,'P'=>23,'Q'=>24,'R'=>25,'S'=>26,'T'=>27,'U'=>28,'V'=>29,'W'=>32,'X'=>30,'Y'=>31,'Z'=>33);
            $code = $area_code[$taiwan[1]];
            $sum = $code{0} + $code{1}*9;
            $index = 8;
            for($k=1;$k<8;$k++)
            {
                $sum += $taiwan[2]{$k} * $index;
                $index--;
            }

            $get_num = $sum%10;
            if ($get_num==$taiwan[2]{8}) return true;
            return false;
        }
        preg_match('/^[157][0-9]{6}([0-9])$/', $idcard,$aomen);//澳门
        if ($aomen)
        {
            return true;
        }
        return false;
    }

最后

以上就是敏感星星为你收集整理的php下对港澳台身份证进行验证的全部内容,希望文章能够帮你解决php下对港澳台身份证进行验证所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部