PHP校验身份证号是否正确
用PHP语言实现校验身份证号的算法,供参考
/*** 校验身份证号是否正确* @param $idcard 身份证号* @return bool true正确*/public static function validateIDCard($idcard) {if(empty($idcard)){return false;}if (!preg_match('/(^\d{15}$)|(^\d{17}([0-9]|X|x)$)/',$idcard)){return false;}$idcard = strtoupper($idcard); # 如果是小写x,转化为大写Xif(strlen($idcard) != 18 && strlen($idcard) != 15){return false;}# 如果是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]; # 判断身份证是否合理return $validateIdcard == $IDCardCode;}
相关文章:
PHP校验身份证号是否正确
用PHP语言实现校验身份证号的算法,供参考 /*** 校验身份证号是否正确* param $idcard 身份证号* return bool true正确*/public static function validateIDCard($idcard) {if(empty($idcard)){return false;}if (!preg_match(/(^\d{15}$)|(^\d{17}([0-9]|X|x)$)/,$…...
[C++ ]:5.类和对象中(运算符重载补充)+ 类和对象下(初始化列表)
类和对象中(运算符重载补充) 类和对象下(初始化列表) 一.运算符重载补充:1.流插入运算符:1.考虑到隐含的参数指针:2.进行优化!2-1:解决办法:友元2-2ÿ…...
D. Doremy‘s Connecting Plan Codeforces Round 906 (Div. 2)
Problem - D - Codeforces 题目大意:有一个长度为n的数组a,同时有一个n个点的图,编号与数组的编号对应,初始没有边,如果当前连通块的中a[i]的和某一个点a[j]>连通块的一个点i*某一个点j*c,那么就可以连…...
Prometheus+Grafana
一、Prometheus 获取配置文件 docker run -d -p 9090:9090 --name prometheus prom/prometheusmkdir -p /app/prometheusdocker cp prometheus:/etc/prometheus/prometheus.yml /app/prometheus/prometheus.yml停止并删除旧的容器,重新启动 docker run -d --name…...
CoCa论文笔记
摘要 计算机视觉任务中,探索大规模预训练基础模型具有重要意义,因为这些模型可以可以极快地迁移到下游任务中。本文提出的CoCa(Contrastive Captioner),一个极简设计,结合对比损失和captioning损失预训练一…...
uniapp 微信小程ios端键盘弹起后导致页面无法滚动
项目业务逻辑和出现的问题整理 新增页面 用户可以主动添加输入文本框 添加多了就会导致当前页面出现滚动条,这就导致ios端滚动页面的时候去点击输入框键盘抬起再关闭的时候去滚动页面发现页面滚动不了(偶尔出现),经过多次测试发现是键盘抬起的时候 主动向上滑动 100%出现这种问…...
三维模型优势在哪里?如何提升产品自身商业价值?
不少企业、商家都开始使用VR全景展示来宣传推广自己的产品、活动等,虽说VR全景的沉浸式体验,相比于图片、视频而言有着无法取代的优势,但是也不能忘了VR全景另一个大优势,那就是丰富多样的互动性。3D模型展示让产品展示和体验不再…...
WheatA 轻量级生态数据软件
无论是在工作还是上学期间,大家想要做一个科研项目或者市场调查时,往往需要大量的数据用于分析总结,这时获得优质的数据就显得额外重要,数据的优劣往往决定了项目结果的好坏。数据来源的主要渠道主要有两种:无非是去数…...
2127. 参加会议的最多员工数 : 啥是内向/外向基环树(拓扑排序)
题目描述 这是 LeetCode 上的 「2127. 参加会议的最多员工数」 ,难度为 「困难」。 Tag : 「拓扑排序」、「内向基环树」、「图」 一个公司准备组织一场会议,邀请名单上有 n 位员工。 公司准备了一张圆形的桌子,可以坐下任意数目的员工。 员工…...
Qt入门日记1
目录 1.Qt简介和案例 2.第一个Qt程序 3.学会查看帮助文档 4.创建一个按钮 5.对象树简介 6.Qt的坐标系 7. 信号和槽 7.1自定义信号和槽 7.2信号连接信号 7.3拓展 7.4Qt4版本以前的connect 1.Qt简介和案例 Qt是一个跨平台的C图形用户界面应用程序框架(就是一个库吧…...
SpringBoot_第七章(读写分离)
这里列举了三种读写分离实现方案,分别是如下三种 1:MybatisPlus(读写分离) 1.1:首先创建三个数据库1主2从 表名是user表 1.2:代码实例 1:导入pom <!--MybatisPlus的jar 3.0基于jdk8--><depend…...
linux下mysql-8.2.0集群部署(python版本要在2.7以上)
目录 一、三台主机准备工作 1、mysql官方下载地址:https://dev.mysql.com/downloads/ 2、修改/etc/hosts 3、关闭防火墙 二、三台主机安装mysql-8.2.0 1、解压 2、下载相应配置 3、初始化mysql,启动myslq,设置开机自启 4、查看初始密…...
40 深度学习(四):卷积神经网络|深度可分离卷积|colab和kaggle的基础使用
文章目录 卷积神经网络为什么要卷积卷积的具体流程池化tensorflow代码 深度可分离卷积原理介绍计算量对比代码参数计算例子 colab 和 kagglecolabkaggle如何在colab上使用kaggle的数据 卷积神经网络 卷积神经网络的基本结构 1: (卷积层(可选)池化层) * N全连接层 *…...
Spring Boot面向切面加注解
一.项目pom.xml文件引入切面依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId> </dependency>二.定义注解类 import java.lang.annotation.*;/*** desc 错误日志注解* au…...
uniapp小程序授权统一处理
1.使用 1.将工具代码引入到utils中 const authorize (scope, isOne false, isMust false) > {if (!scope || !authorizeObj[scope]) {return console.error(请传输需要获取权限的 scope,详见,https://uniapp.dcloud.net.cn/api/other/authorize.html#scope-…...
光学仿真|优化汽车内部照明体验
当我们谈论优化人类感知的内部照明时,我们实际上指的是两个重点领域:安全性和驾驶员体验。如果内部照明可以提供尽可能最佳的体验,驾驶员则能够更好地应对颇具挑战性或意外的驾驶状况,并且减轻疲劳感。除了功能优势外,…...
Spring XML使用CASE WHEN处理SELECT字段
在日常开发中,经常会碰到需要导出的情况。而一些枚举值或者状态一般是定义成整型,这个时候需要对数据进行转换,转换成对应的文本再导出。 在XML中用CASE WHEN来根据不同的查询结果做不同的处理。 比如 SELECT name AS 姓名, age AS 年龄 C…...
关于C#中使用多线程的讨论
关于C#中使用多线程的讨论 C# 中 Thread 调用的函数有返回值 没有输入应该如何解决 如果你想在一个新的线程中调用一个带返回值但没有输入参数的函数,可以使用 Thread 类的委托 ThreadStart 来创建一个新的线程,并在其中调用该函数。然后,你可以使用 Thread 类的 Join 方法…...
工程机械数字孪生可视化平台建设,推动大型装备智能化数字化转型升级
随着信息技术的迅猛发展,数字孪生技术作为一项新兴技术应运而生。数字孪生是指通过数学模型和仿真技术,将实际物理对象与其数字化虚拟模型相互关联,实现对物理对象的全生命周期管理和智能优化。在工程机械领域,巨蟹数科从数字孪生…...
Linux 网络流量监控利器 iftop命令详解及实战
简介 iftop 是什么 在 Linux 系统下即时监控服务器的网络带宽使用情况,有很多工具,比如 iptraf、nethogs 等等,但是推荐使用小巧但功能很强大的 iftop 工具。 iftop 是 Linux 系统一个免费的网卡实时流量监控工具,类似于 top 命令…...
REX-UniNLU C++高性能集成:模型推理加速方案
REX-UniNLU C高性能集成:模型推理加速方案 1. 为什么在C里跑NLU模型是个现实需求 很多做企业级文本处理的朋友都遇到过类似情况:业务系统用C写的,性能要求高、响应要快、不能随便加新语言栈。这时候突然需要接入一个中文NLP能力——比如从客…...
别急着重装!Makefile报错‘Command not found‘的通用排查思路:以蜂鸟E203的RISC-V工具链为例
Makefile报错"Command not found"的深度排查指南:从RISC-V工具链到通用解决方案 当你满怀期待地克隆了一个开源项目,准备开始编译时,终端却无情地抛出一行红色错误:"riscv-nuclei-elf-gcc: Command not found"…...
OpenClaw自动化测试:Phi-3-vision-128k-instruct多模态能力边界
OpenClaw自动化测试:Phi-3-vision-128k-instruct多模态能力边界 1. 测试背景与实验设计 去年在尝试用AI处理技术文档时,我发现纯文本模型经常无法理解流程图中的逻辑关系。这促使我开始探索多模态模型的实际能力边界。最近通过OpenClaw对接Phi-3-visio…...
302重定向实战:如何用Nginx配置临时跳转避免SEO降权
302重定向实战:如何用Nginx配置临时跳转避免SEO降权 当网站需要临时调整页面位置时,302重定向就像给访客一张写着"请移步隔壁会议室"的临时指引牌。与永久搬迁通知(301重定向)不同,它明确告知搜索引擎这只是…...
5分钟彻底解决Windows效率难题:PowerToys中文版让系统增强零门槛上手
5分钟彻底解决Windows效率难题:PowerToys中文版让系统增强零门槛上手 【免费下载链接】PowerToys-CN PowerToys Simplified Chinese Translation 微软增强工具箱 自制汉化 项目地址: https://gitcode.com/gh_mirrors/po/PowerToys-CN 你是否曾因Windows系统功…...
用于预测肿瘤突变负荷及胃癌免疫治疗相关通路分析的生物知情图神经网络
论文总结1、有开源代码,本研究生成的数据和源代码存放在GitHub [https://github.com/liuchuwei/PGLCN]中,GitHub 使用Python和Pytorch实现。2、对比方法仅和传统的机器学习方法进行对比3、使用GNNExplainer进行生物学解释,整合TCGA中33种癌症…...
【教程4>第12章>第8节】基于FPGA的图像缩放实现——图像横向压缩仿真测试以及MATLAB辅助验证
本课程学习成果预览 目录 1.软件版本 2.图像横向压缩testbench编写 3.仿真测试 4.程序操作视频 欢迎订阅FPGA/MATLAB/Simulink系列教程 《★教程1:matlab入门100例》 《★教程2:fpga入门100例》 《★教程3:simulink入门60例》 《★教程4:FPGA/MATLAB/Simulink联合开发入门与…...
ONES 签约全国汽车电子精密制造领先者——维科精密
ONES 签约全国汽车电子精密制造领先者 —— 维科精密。作为上市的国家级专精特新“小巨人”企业,维科精密凭借领先的技术实力与制造能力,成为全球知名客户高度信赖的汽车电子精密制造领域标杆。ONES 助力维科精密实现研发与制造流程的数字化升级…...
效率提升利器:用快马ai生成jdk多版本一键切换与配置管理工具
作为一名经常需要切换不同JDK版本的开发者,我深知手动配置环境变量的痛苦。每次切换项目时,都要反复修改JAVA_HOME和PATH,还要担心配置出错影响其他项目。最近发现InsCode(快马)平台可以快速生成JDK管理工具,彻底解决了这个痛点。…...
湖南长沙正规的空调工厂名声
在湖南长沙,寻找一家正规的空调工厂并非易事,但长沙荣幸商贸有限责任公司(以下简称“荣幸商贸”)凭借其卓越的服务和优质的产品,成为了众多消费者的首选。本文将通过具体数据和案例,为您详细介绍荣幸商贸的…...
