资讯专栏INFORMATION COLUMN

php验证身份证函数

lindroid / 614人阅读

摘要:分享一个验证身份号函数基本格式校验年月日位校验最后一位校验位校验

分享一个验证身份号函数:

function validateIdCard($value)
{
    if (!preg_match("/^d{17}[0-9xX]$/", $value)) { //基本格式校验
        return false;
    }

    $parsed = date_parse(substr($value, 6, 8));
    if (!(isset($parsed["warning_count"]) 
        && $parsed["warning_count"] == 0)) { //年月日位校验
        return false;
    }

    $base = substr($value, 0, 17);

    $factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];

    $tokens = ["1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"];

    $checkSum = 0;
    for ($i=0; $i<17; $i++) {
        $checkSum += intval(substr($base, $i, 1)) * $factor[$i];
    }

    $mod = $checkSum % 11;
    $token = $tokens[$mod];

    $lastChar = strtoupper(substr($value, 17, 1));

    return ($lastChar === $token); //最后一位校验位校验
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/22321.html

相关文章

  • 使用PHP和MySql简单身份验证 1

    摘要:哈希算法返回个字符的伪随机字符串查询数据库语句无效表示用户名和密码正确欢迎登陆表示用户名和密码不正确无效登陆分析创建完表单后直接到自己,然后连接数据库,会利用到数据库的基本操作和函数。之后会利用会话控制来管理验证。 内容来源于《PHP和MySql Web开发》 简单的访问控制:首先创建一个简单的登陆界面showImg(https://segmentfault.com/a/1190000...

    Astrian 评论0 收藏0
  • php 学习指南及技术干货

    摘要:安全生成安全的随机数,加密数据,扫描漏洞的库一个兼容标准的过滤器一个生成随机数和字符串的库使用生成随机数的库一个安全库一个纯安全通信库一个简单的键值加密存储库一个结构化的安全层一个试验的面向对象的包装库一个扫描文件安全的库 Security 安全 生成安全的随机数,加密数据,扫描漏洞的库 HTML Purifier-一个兼容标准的HTML过滤器 RandomLib-一个生成随机数和字...

    lifefriend_007 评论0 收藏0
  • php 学习指南及技术干货

    摘要:安全生成安全的随机数,加密数据,扫描漏洞的库一个兼容标准的过滤器一个生成随机数和字符串的库使用生成随机数的库一个安全库一个纯安全通信库一个简单的键值加密存储库一个结构化的安全层一个试验的面向对象的包装库一个扫描文件安全的库 Security 安全 生成安全的随机数,加密数据,扫描漏洞的库 HTML Purifier-一个兼容标准的HTML过滤器 RandomLib-一个生成随机数和字...

    skinner 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<