php验证身份证是否准确

算法验证身份证是否存在正确

结合网上资料整理,目前用于项目身份证验证无问题

直接上代码

public function validateIDCard($idcard) {if(empty($idcard)){return '错误身份证';}else{$idcard = strtoupper($idcard); # 如果是小写x,转化为大写Xif(strlen($idcard) != 18 && strlen($idcard) != 15){return '错误身份证';}# 如果是15位身份证,则转化为18位if(strlen($idcard) == 15){# 如果身份证顺序码是996 997 998 999,这些是为百岁以上老人的特殊编码 if (array_search(substr($idcard, 12, 3), array('996', '997', '998', '999')) !== false) {$idcard = substr($idcard, 0, 6) . '18' . substr($idcard, 6, 9);} else {$idcard = substr($idcard, 0, 6) . '19' . substr($idcard, 6, 9);}# 加权因子 $factor = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);# 校验码对应值 $code = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');$checksum = 0;for ($i = 0; $i < strlen($idcard); $i++) {$checksum += substr($idcard, $i, 1) * $factor[$i];}$idcard = $idcard . $code[$checksum % 11];}# 验证身份证开始$IDCardBody = substr($idcard, 0, 17); # 身份证主体$IDCardCode = strtoupper(substr($idcard, 17, 1)); # 身份证最后一位的验证码# 加权因子 $factor = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);# 校验码对应值 $code = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');$checksum = 0;for ($i = 0; $i < strlen($IDCardBody); $i++) {$checksum += substr($IDCardBody, $i, 1) * $factor[$i];}$validateIdcard = $code[$checksum % 11];    # 判断身份证是否合理if($validateIdcard != $IDCardCode){return '错误身份证';}else{return '正确身份证';}}}

php验证身份证是否正确相关推荐

  1. mysql验证身份证号正确_通过SQL校验身份证号码是否正确

    根据提供的身份证号码信息验证身份证号码是否符合二代身份证规范,其中区域编码网上可下载. 使用数据库为DB2,但目测可以通用身份证号码第18位验证算法从网上查得,具体验证算法如下: 1.将前面的身份证号 ...

  2. Js验证身份证是否正确

    前言 一般情况下,提交数据时, 会对要提交的数据进行各种验证,其他的验证我这里就不讲了, 现在网上有很多, 我要讲的是对身份证的验证, 我看大部分对身份证的验证都是对身份证的位数进行验证(例如15位或 ...

  3. js正则验证身份证号是否正确

    微信小程序开发交流qq群   173683895    承接微信小程序开发.扫码加微信. 封装js公共方法 //验证身份证格式 const IdentityCodeValid = sId => ...

  4. 验证身份证号是否正确

     根据身份证的算法 验证身份证是否是正确的身份证号  举个栗: 输入正确的身份证号,随便改变一位数字或者字母(最后一位可能为x) 返回false  注   意:  如果输入的身份号最后一位为x 一定要 ...

  5. js验证身份证号码是否正确(整理)

    使用:/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/ if(!(/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(v ...

  6. Excel中如何利用函数验证身份证号码是否正确?

    今天小编跟大家分享一下Excel中如何利用函数验证身份证号码录入是否正确? ​ 1.首先打开Excel文件,然后选中身份证号码单元格区域 2.然后找到并鼠标单击[DIY工具箱]选项 3.点击[身份证] ...

  7. php 验证身份证是否存在正确

    /*** 算法验证身份证是否存在正确* @param [string] $idcard* @return void true正确 false错误*/ function validateIDCard($ ...

  8. 学以致用——Java验证身份证号码是否正确(带校验算法)

    需求: 验证身份证号码是否正确(带校验算法) 源码: package javaCoreTech1; import java.io.BufferedReader; import java.io.IOEx ...

  9. 验证身份证号是否正确,计算身份证号最后一位

    判断前17位算出的最后一位和用户输入的最后一位来判断身份证号码是否有效(随便乱输蒙对的概率比较小)验证身份证格式的正则 /^\d{6}((?:19|20)((?:\d{2}(?:0[13578]|1[ ...

最新文章

  1. 显示-连接-删除管理数据库管理应用
  2. 解决某东对ip限制若兰(nolanjdc)无法获取短信验问题
  3. PMcaff微分享 | 为什么大部分女生爱星座?大部分男生恨星座?
  4. ubuntu 14.04
  5. Web组件 – 构建商业化应用的基石
  6. android判断sd u盘,[Android Framework]获取U盘 SD 状态
  7. 使用JCA的密码术–提供者中的服务
  8. 160 - 20 BuLLeT.8
  9. 总结:ADO.NET在开发中的部分使用方法和技巧
  10. 李志民:只修长城不会有真正的安全
  11. 010. 深入JVM学习—垃圾收集策略概览
  12. 正则表达式(Regex)
  13. php 去除单引号,php如何去除双引号
  14. 随感10-Transecndence超验骇客
  15. 网上得到的一个3D渲染引擎
  16. 使用 LaTeX 的笔记
  17. 搜狗微信为什么搜不到服务器,搜狗微信搜索部分功能为什么下线 搜狗微信搜索部分功能将被下线详情介绍...
  18. 世界上第一第一台计算机叫什么,世界上第一台计算机叫什么
  19. numpy.core.multiarray failed to impor
  20. skinsdog 狗网官网CSGO国服可直接取回饰品皮肤开箱网站

热门文章

  1. 安全杂记——病毒篇(自我笔记与小白普及)
  2. 讲解卡尔曼滤波附代码讲解
  3. 70后中年人转行当程序员:你们躺下吧,我要开始卷了
  4. 大专找不到计算机工作吗,大专毕业就没工作?
  5. 修驴蹄子有什么好看的?我一般刷到那里,就不动了。
  6. 看图猜成语通关辅助程序(ruby)
  7. 图说Kubernetes
  8. 利用百度地图抓取公交信息实现三维地图车辆跟踪轨迹回放
  9. word百度三维地图经纬度调整系数
  10. python频率_Python频率分布(FreqDist/NLTK)Issu