当前位置:首页 > 技术教程 > 脚本编程 > 正文内容

php中验证身份证号

atao5年前 (2020-06-18)脚本编程4004

转载,PHP验证身份证号的正确性,使用了正则验证身份证号中的省市数据、出生日期,验证尾号识别码。

private function is_idcard($vStr) {
        $vCity = array('11', '12', '13', '14', '15', '21', '22', '23', 
            '31', '32', '33', '34', '35', '36', '37', '41', '42', '43', 
            '44', '45', '46', '50', '51', '52', '53', '54', '61', '62', 
            '63', '64', '65', '71', '81', '82', '91');
        if (!preg_match('/^(\d{17}[xX\d]|\d{15})$/', $vStr)) return false;
        if (!in_array(substr($vStr, 0, 2), $vCity)) return false;
        $vStr = preg_replace('/[xX]$/i', 'a', $vStr);
        $vLength = strlen($vStr);
        if ($vLength == 18) {
            $vBirthday = substr($vStr, 6, 4) . '-' . 
                substr($vStr, 10, 2) . '-' . substr($vStr, 12, 2);
        } else {
            $vBirthday = '19' . substr($vStr, 6, 2) . '-' . 
                substr($vStr, 8, 2) . '-' . substr($vStr, 10, 2);
        }
        if (date('Y-m-d', strtotime($vBirthday)) != $vBirthday) return false;
        if ($vLength == 18) {
            $vSum = 0;
            for ($i = 17; $i >= 0; $i--) {
                $vSubStr = substr($vStr, 17 - $i, 1);
                $vSum += (pow(2, $i) % 11) * (($vSubStr == 'a') ? 10 : intval($vSubStr, 11));
            }
            if ($vSum % 11 != 1) return false;
        }
        return true;
    }//1*945523972


扫描二维码推送至手机访问。

版权声明:本文由武景涛的博客发布,如需转载请注明出处。

本文链接:http://yizhanhongtu.cn/post/3.html

分享给朋友:

相关文章

php原生代码实现短信验证码注册业务,流程详解附demo

php原生代码实现短信验证码注册业务,流程详解附demo

业务流程:用户在前端输入手机号后发送验证码请求,并发送到php处理页。php处理页收到手机号,生成验证码并调用短信平台。短信平台采用API对接,并发送验证码用户收到验证码,并提交注册php处理页收到验...

PhpSpreadsheet的下载介绍和简单使用(导出文件和上传excel数据到数据库)

PhpSpreadsheet的下载介绍和简单使用(导出文件和上传excel数据到数据库)

由于PHPExcel已经不再维护,PhpSpreadsheet是PHPExcel的下一个版本。PhpSpreadsheet是一个用纯PHP编写的库,并引入了命名空间,PSR规范等。这里简单介绍下Php...

PHP实现qq邮箱发送自定义邮件

PHP实现qq邮箱发送自定义邮件

本文实例讲述了PHP实现发送邮件的方法。不同类型的邮箱发送邮件的方式也是不同的。下面我们就先给大家举例介绍qq邮箱开启发送邮件服务的方法。首先我们登录qq邮箱,打开设置。然后点击账户开启POP3/SM...

PHP原生对接QQ互联/实现QQ登录,SDK2.1版本/超级详细!

PHP原生对接QQ互联/实现QQ登录,SDK2.1版本/超级详细!

在目前在大部分网站中都会接入QQ登录或者微信登录,目前QQ互联的接入门槛是比较低的,官方的前提是必须备案网站!!如果网站没有备案请某宝自行搜索一下其他方法。用QQ登录接口,首先要到QQ互联完善开发者认...

超简单的php无限极分类,生成递归数组并输出树状图

超简单的php无限极分类,生成递归数组并输出树状图

什么是无限级分类?无限级分类是一种分类技巧,例如部门组织,文章分类,学科分类等常用到无限级分类,将其简单理解成分类就好了。其实我们仔细想一下,生活中的分类简直太多了,衣服可以分为男装和女装,也可以分为...

php基于QRcode类生成二维码,类文件下载

php基于QRcode类生成二维码,类文件下载

使用PHP语言生成二维码,还是挺有难度的,除了调用生成二维码图片的接口除外,如果自己写代码生成,真的无从下手。然而,我们可以使用phpqrcode这个现成的类文件,PHP二维码生成类库,利用它可以轻松...