首页 > php教程 > php手册 > 正文

【置顶】 PHP简单的身份证验证代码分享

php中文网
发布: 2016-06-07 11:34:59
原创
1706人浏览过

有时候注册一些网站要求输入身份证号码,然后把自己的信息修改一位或者两位之后发现报错,是不是觉得很神奇呢?
这里需要注意的是:
加权因子和校验码串为互联网统计 尾数自己测试11次 任意身份证都可以通过。

下面是代码:
   <br>  <?php <br />     /**<br>      * 函数说明:验证身份证是否真实<br>      * 注:加权因子和校验码串为互联网统计  尾数自己测试11次 任意身份证都可以通过<br>      * 传递参数:<br>      * $number身份证号码<br>      * 返回参数:<br>      * true验证通过<br>      * false验证失败<br>      */<br>     function isIdCard($number) {<br>         $sigma = '';<br>         //加权因子 <br>         $wi = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);<br>         //校验码串 <br>         $ai = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');<br>         //按顺序循环处理前17位 <br>         for ($i = 0;$i              //提取前17位的其中一位,并将变量类型转为实数 <br>             $b = (int) $number{$i}; <br>             //提取相应的加权因子 <br>             $w = $wi[$i]; <br>             //把从身份证号码中提取的一位数字和加权因子相乘,并累加 得到身份证前17位的乘机的和 <br>             $sigma += $b * $w;<br>         }<br>     //echo $sigma;die;<br>         //计算序号  用得到的乘机模11 取余数<br>         $snumber = $sigma % 11; <br>         //按照序号从校验码串中提取相应的余数来验证最后一位。 <br>         $check_number = $ai[$snumber];<br>         if ($number{17} == $check_number) {<br>             return true;<br>         } else {<br>             return false;<br>         }<br>     }<br>     //eg<br>     if (!isIdCard('000000000000000001')) {<br>     echo "身份证号码不合法";<br>     } else {<br>     echo "身份证号码正确";<br>     }<br>     ?&gt;

AD:真正免费,域名+虚机+企业邮箱=0元

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号