php身份证号码检查类实例

本文实例讲述了php身份证号码检查类。分享给大家供大家参考。具体如下:

<?php
 class CIDMaker // 声明一个身份证号码检查类
 {
 var $id;
 var $err;
 var $idx = array(1,1,1,1,1,1,1,1,3,1,1,2,2,2,3,2,2,2,2,2,2,2,3,3,3,3);
 var $idy = array(0,1,2,3,4,5,6,7,4,8,9,0,1,2,5,3,4,5,6,7,8,9,0,1,2,3);
 function check($id_no)
 {
  $id_no = ucfirst($id_no); // 将英文字母转大写
  if(ereg("^[A-Z][0-9]{9}$", $id_no))
  {
  for($i=0;$i<10;$i++)
  $ch[$i] = substr($id_no,$i,1);
  $i = 0;
  // 将英文字母转为数字 BEGIN
  for ($char = "A"; $char != $ch[0]; $char++)
   $i++;
  // 将英文字母转为数字 END
  // 导入检查公式 BEGIN
  $id = $this->idx[$i]+$this->idy[$i]*9+$ch[1]*8+$ch[2]*7+$ch[3]*6+$ch[4]*5+$ch[5]*4+$ch[6]*3+$ch[7]*2+$ch[8]*1+$ch[9]*1;
  $id = (($id % 10) == 0) ? TRUE : FALSE;
  return $id;
  // 导入检查公式 END
  }
  else
  return 0;
 }
 }
?>

另外,关于身份证号验证本站还提供了身份证归属地查询工具如下:

http://tools.jb51.net/bianmin/sfz

希望本文所述对大家的php程序设计有所帮助。

(0)

相关推荐

  • PHP实现中国公民身份证号码有效性验证示例代码

    本文将使用Java实现中国公民(15位或者18位)身份证号码的相关验证,功能如下: 身份证号有效性验证 分析详细身份证信息 生成一个虚拟的省份证号码. 身份证号码验证 1.号码的结构 公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成.排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码. 2.地址码(前六位数) 表示编码对象常住户口所在县(市.旗.区)的行政区划代码,按GB/T2260的规定执行. 3.出生日期码(第七位至十四位) 表示编码对象出

  • php根据身份证号码计算年龄的实例代码

    复制代码 代码如下: <?php function getAgeByID($id){         //过了这年的生日才算多了1周岁         if(empty($id)) return '';         $date=strtotime(substr($id,6,8)); //获得出生年月日的时间戳         $today=strtotime('today'); //获得今日的时间戳         $diff=floor(($today-$date)/86400/365);

  • php提取身份证号码中的生日日期以及验证是否为成年人的函数

    php 提取身份证号码中的生日日期以及确定是否成年的一个函数.可以同时确定15位和18位的身份证,经本人亲测,非常好用,分享函数代码如下: <?php //用php从身份证中提取生日,包括位和位身份证 function getIDCardInfo($IDCard){ $result['error']=;//:未知错误,:身份证格式错误,:无错误 $result['flag']='';//标示成年,标示未成年 $result['tdate']='';//生日,格式如:-- if(!eregi(&quo

  • php验证身份证号码正确性的函数

    身份证验证最简单的就是判断长度了,当然这种非常简单破了如果要更规则一点我们需要对身份证号码进行一些按生成规则验证了,下面整理了一些函数我们来看看. 例子,今天分享一个php验证身份证号码是否正确函数. /********************php验证身份证号码是否正确函数*********************/ function is_idcard( $id ) { $id = strtoupper($id); $regx = "/(^\d{15}$)|(^\d{17}([0-9]|X)

  • php身份证号码检查类实例

    本文实例讲述了php身份证号码检查类.分享给大家供大家参考.具体如下: <?php class CIDMaker // 声明一个身份证号码检查类 { var $id; var $err; var $idx = array(1,1,1,1,1,1,1,1,3,1,1,2,2,2,3,2,2,2,2,2,2,2,3,3,3,3); var $idy = array(0,1,2,3,4,5,6,7,4,8,9,0,1,2,5,3,4,5,6,7,8,9,0,1,2,3); function check

  • Js实现中国公民身份证号码有效性验证实例代码

    本文将使用JavaScript实现中国公民(15位或者18位)身份证号码的相关验证,功能如下: 身份证号有效性验证 分析详细身份证信息 生成一个虚拟的省份证号码. 身份证号码验证 1.号码的结构 公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成.排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码. 2.地址码(前六位数) 表示编码对象常住户口所在县(市.旗.区)的行政区划代码,按GB/T2260的规定执行. 3.出生日期码(第七位至十四位) 表

  • C#验证身份证号码正确性的实例代码(收藏)

    今天在QQ空间看到一篇关于C#语言验证18位身份证号码的验证方法和实例代码,抽了些时间学习了一下,个人觉得还不错,所以把它记了下来,方便以后使用! 18位号码: private static bool CheckIDCard18(string Id) { long n = 0; if (long.TryParse(Id.Remove(17), out n) == false || n < Math.Pow(10, 16) || long.TryParse(Id.Replace('x', '0')

  • JAVA验证身份证号码有效性的实例代码

    目录 一.身份证结构和形式 二. 18位身份证号码计算方法 三.JAVA 校验身份证号码 补充:java开发身份证号校验(边输入边校验) 总结 一.身份证结构和形式 在通用的身份证号码有15位的和18位的: 15位身份证号码各位的含义: 1.1-2位省.自治区.直辖市代码: 2.3-4位地级市.盟.自治州代码: 3.5-6位县.县级市.区代码: 4.7-12位出生年月日,比如670401代表1967年4月1日,与18位的第一个区别: 5.13-15位为顺序号,其中15位男为单数,女为双数: 18

  • PHP实现可精确验证身份证号码的工具类示例

    本文实例讲述了PHP实现可精确验证身份证号码的工具类.分享给大家供大家参考,具体如下: <?php class check_IdCard { // $num为身份证号码,$checkSex:1为男,2为女,不输入为不验证 public function checkIdentity($num, $checkSex = '') { // 不是15位或不是18位都是无效身份证号 if (strlen($num) != 15 && strlen($num) != 18) { return f

  • Java身份证号码校验工具类详解

    本文实例为大家分享了Java身份证号码校验工具类的具体代码,供大家参考,具体内容如下 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.regex.Pattern; public class IdcardVa

  • js实现身份证号码验证的简单实例

    以下是根据身份证号码编码规则,使用JS对其进行有效性验证代码 IdCard-Validate.js代码如下: 复制代码 代码如下: /** * 身份证15位编码规则:dddddd yymmdd xx p  * dddddd:地区码  * yymmdd: 出生年月日  * xx: 顺序类编码,无法确定  * p: 性别,奇数为男,偶数为女 * <p /> * 身份证18位编码规则:dddddd yyyymmdd xxx y  * dddddd:地区码  * yyyymmdd: 出生年月日  *

  • jquery 校验中国身份证号码实例详解

    jquery 校验中国身份证号码实例详解 大陆18位身份证(第二代身份证) 身份号码是一组具有特征组合码,由十七位数字本体码和一位校验码组成. 排列顺序从左至右依次为:六位数字地区码,八位数字生日码,三位数字顺序码和一位数字校验码. 校验方法: (1)先对前17位数字的权求和 S = Sum(Ci * Vi), i = 0, ... , 16 Ci:表示身份证号码上第i位置的数字值 Vi:表示第i位置上的"加权因子" 加权因子Vi: 7 9 10 5 8 4 2 1 6 3 7 9 1

  • Android编程实现的身份证、车牌号正则验证工具类实例

    本文实例讲述了Android编程实现的身份证.车牌号正则验证工具类.分享给大家供大家参考,具体如下: /** * 正则表达式验证工具类(验证身份证.车牌号等) * * @author chenlin * */ public class ValidateUtil { /** * 验证str是否为正确的身份证格式 * * @param str * @return */ public static boolean isIdentityCard(EditText view) { boolean flag

  • java身份证合法性校验工具类实例代码

    1.身份证规则 计算方法(来源百度) 将前面的身份证号码17位数分别乘以不同的系数.从第一位到第十七位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2. 将这17位数字和系数相乘的结果相加. 用加出来和除以11,看余数是多少? 余数只可能有0-1-2-3-4-5-6-7-8-9-10这11个数字.其分别对应的最后一位身份证的号码为1-0-X -9-8-7-6-5-4-3-2.(即余数0对应1,余数1对应0,余数2对应X-) 通过上面得知如果余数是3,就会在身份

随机推荐