分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

php 验证身份证号

发布时间:2023-09-06 02:03责任编辑:董明明关键词:暂无标签
function validation_filter_id_card($id_card){ ???if(strlen($id_card)==18){ ???????return idcard_checksum18($id_card); ???}elseif((strlen($id_card)==15)){ ???????$id_card=idcard_15to18($id_card); ???????return idcard_checksum18($id_card); ???}else{ ???????return false; ???}}// 计算身份证校验码,根据国家标准GB 11643-1999function idcard_verify_number($idcard_base){ ???if(strlen($idcard_base)!=17){ ???????return false; ???} ???//加权因子 ???$factor=array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2); ???//校验码对应值 ???$verify_number_list=array(‘1‘,‘0‘,‘X‘,‘9‘,‘8‘,‘7‘,‘6‘,‘5‘,‘4‘,‘3‘,‘2‘); ???$checksum=0; ???for($i=0;$i<strlen($idcard_base);$i++){ ???????$checksum += substr($idcard_base,$i,1) * $factor[$i]; ???} ???$mod=$checksum % 11; ???$verify_number=$verify_number_list[$mod]; ???return $verify_number;}// 将15位身份证升级到18位function idcard_15to18($idcard){ ???if(strlen($idcard)!=15){ ???????return false; ???}else{ ???????// 如果身份证顺序码是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); ???????} ???} ???$idcard=$idcard.idcard_verify_number($idcard); ???return $idcard;}// 18位身份证校验码有效性检查function idcard_checksum18($idcard){ ???if(strlen($idcard)!=18){ ???????return false; ???} ???$idcard_base=substr($idcard,0,17); ???if(idcard_verify_number($idcard_base)!=strtoupper(substr($idcard,17,1))){ ???????return false; ???}else{ ???????return true; ???}}

php 验证身份证号

原文地址:https://www.cnblogs.com/scode2/p/9276719.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved