PHP身份验证方面的函数
PHP 函数 方面 身份验证
2023-06-13 09:14:13 时间
//计算身份证校验码,根据国家标准GB11643-1999
functionidcard_verify_number($idcard_base){
if(strlen($idcard_base)!=17){returnfalse;}
//加权因子
$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位
functionidcard_15to18($idcard){
if(strlen($idcard)!=15){
returnfalse;
}else{
//如果身份证顺序码是996997998999,这些是为百岁以上老人的特殊编码
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位身份证校验码有效性检查
functionidcard_checksum18($idcard){
if(strlen($idcard)!=18){returnfalse;}
$idcard_base=substr($idcard,0,17);
if(idcard_verify_number($idcard_base)!=strtoupper(substr($idcard,17,1))){
returnfalse;
}else{
returntrue;
}
}
?>
其中的$idcard_base是指身份证中的本位码,本位码是18位身份证里才有的,也就是18位身份证的前17位,最后一位称为校验码
一般在使用的时候不用直接调用idcard_verify_number(),平时的应用大多是使用后两个函数
这些函数都没有关心身份证字符串的格式问题,在调用前自行进行格式检查
相关文章
- php://input allow_url_include,DVWA设置PHP函数allow_url_include:已禁用
- 【说站】php增量Hash函数的使用
- php保存图片到本地的方法
- PHP与MySQL:紧密结合的良好伙伴(php与mysql关系)
- 维护提升效率:Linux PHP服务器维护指南(linuxphp服务器)
- 扩展如何在PHP中开启Redis扩展(php开启redis)
- 解锁MySQL:使用PHP连接MySQL函数(php连接mysql函数)
- PHP的MySQL编程示例(php的mysql代码)
- PHP实现从MSSQL中数据显示(php 显示 mssql)
- PHP与MSSQL融合产生的丰盛果实(php和mssql环境)
- PHP实现华丽丽的图片上传 MySQL储存精妙记录(php上传图片mysql)
- 用PHP实现Redis缓存一个实例(redis缓存实例php)
- PHP字符转义相关函数小结(php下的转义字符串)
- PHP去除数组中重复的元素并按键名排序函数
- 一个比较简单的PHP分页分组类
- 一步一步学习PHP(4)php函数补充2
- PHP中的MYSQL常用函数(php下操作数据库必备)
- php入门学习知识点二PHP简单的分页过程与原理
- php中计算中文字符串长度、截取中文字符串的函数代码
- PHP中extract()函数的定义和用法
- php实现utf-8和GB2312编码相互转换函数代码
- php中判断数组是一维,二维,还是多维的解决方法
- PHP获取和操作配置文件php.ini的几个函数介绍
- php二维数组用键名分组相加实例函数
- PHP链接MySQL的常用扩展函数
- PHP集成百度Ueditor1.4.3
- php操作redis中的hash和zset类型数据的方法和代码例子
- php中把美国时间转为北京时间的自定义函数分享