PHP学习笔记之身份证验证程序
来源:互联网 发布:旋转轮胎修改数据 编辑:程序博客网 时间:2024/05/01 06:40
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>无标题文档</title><?php function TrueData($year, $mon, $day) {if ($year > 9999 || $year < 1900) return false;if ($mon == 1 || $mon == 3 || $mon == 5 || $mon == 7 || $mon == 8 || $mon == 10 || $mon == 12){ if ($day < 1 || $day > 31)return false; elsereturn true;}else if ($mon == 4 || $mon == 6 || $mon == 9 || $mon == 11){ if ($day < 1 || $day > 30)return false; elsereturn true;}else if ($mon == 2){ if (($year%4 == 0 && $year%100 != 0) || $year%400 == 0) {if ($day < 1 || $day > 29) return false;else return true; } else {if ($day < 1 || $day > 28) return false;else return true; }}else return false; } function Search($str)//查询初始发证地 {$numOfLines = 0;$myfile = array();$myfile = file("IDdata.txt");//将文件内容存储到数组中foreach ($myfile as $value) //遍历数组,查询包含初始发证地代码的字符串元素{ $pos = strpos($value, $str); if ($pos != false) { return substr($value, 0, $pos-3); }}return "火星"; } function CheckCode($IdNum)//判断18位身份证的校验码是否正确 { //分别对应身份证前17位数字的加权因子 $weight = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); //校验码串 $strCode = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); $sum = 0;for ($i=0; $i<17; $i++) //按顺序循环处理前17位{ //提取前17位的其中一位,并将变量类型转为实数 $num = (int) $IdNum[$i]; //把从身份证号码中提取的一位数字和加权因子相乘,并累加 $sum += $num * $weight[$i];} //计算序号 $number = $sum % 11; return ($strCode[$number] == $IdNum[17]); } function IsRightId($IdNum) {if (strlen($IdNum) == 18) { if (is_numeric($IdNum) || (is_numeric(substr($IdNum, 0, 17)) && substr($IdNum, 17, 1) == "X")) {if (CheckCode($IdNum))//判断18位身份证的校验码是否正确 return true; else return false; } else {return false; } } else if (strlen($IdNum) == 15 && is_numeric($IdNum)) { return true; } else { return false;} } ?></head><body> <h3><strong>输入身份证号码就可以显示性别,出生日期和初始化发证地 </strong></h3> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> <strong>身份证号码</strong> <input type="text" name="myID"> <input type="submit" value="确认" /> </form> <?php$IdNum = $_POST['myID']; if (IsRightId($IdNum)){ if (strlen($IdNum) == 18) {$year = substr($IdNum, 6, 4);$month = substr($IdNum, 10, 2);$day = substr($IdNum, 12, 2);$sex = substr($IdNum, 16, 1); } else {$year = substr($IdNum, 6, 2) + 19;$month = substr($IdNum, 8, 2);$day = substr($IdNum, 10, 2);$sex = substr($IdNum, 14, 1); } if (substr($month, 0, 1) == '0') $month = substr($month, 1); if (substr($day, 0, 1) == '0')$day = substr($day, 1); if (!TrueData($year, $month, $day)) {echo("错误的身份证号!请重新输入!"); } if ($sex % 2 == 1) $sex = "男"; else $sex = "女"; $addressNumber = substr($IdNum, 0, 6); echo("性别:" . $sex . "<br />"); echo("出生年月:" . $year . "年" . $month . "月" . $day . "日" . " <br />"); echo("初始发证地:" . Search(substr($IdNum, 0, 6)) . "<br />");}else if ($IdNum != NULL){echo("错误的身份证号!请重新输入!");} ?> </body></html>
0 0
- PHP学习笔记之身份证验证程序
- 用PHP写的身份证验证程序
- Perl练习之验证身份证程序
- php身份证验证类
- PHP身份证验证函数
- PHP验证二代身份证
- PHP验证身份证
- PHP 身份证验证
- PHP学习笔记之表单验证
- 身份证验证程序
- C# 身份证验证程序
- [转]用PHP写的身份证验证程序
- php验证手机号、身份证、邮箱
- js 与 php 验证身份证
- 身份证验证的小程序
- 工作笔记:身份证验证算法
- PHP表单验证之必填字段--w3school学习笔记
- PHP开发学习笔记之生成验证码
- Android使用lint检查工程中的无用资源
- GitHub上的十一款热门开源安全工具
- 为什么 parseInt(0.0000008) === 8?
- Uva 220 Othello
- 最常被程序员们谎称读过的计算机书籍
- PHP学习笔记之身份证验证程序
- 字典全排序
- 2015年2月3日工作日志
- C#设计模式(六)桥接模式
- 关于OJ G++ 、C++提交
- vim 命令大全 / vi 命令大全
- hdu 2059 简单dp
- centos7安装otp17.4
- Tsinsen 清橙 A1035. 素数之和