使用php怎么验证身份证号码的正确性

  介绍

使用php怎么验证身份证号码的正确性?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

php有什么用

php是一个嵌套的缩写名称,是英文超级文本预处理语言,它的语法混合了C、Java、Perl以及php自创新的语法,主要用来做网站开发,许多小型网站都用php开发,因为php是开源的,从而使php经得久不衰。

/* * * * * * * * * * * * * * * * * * * * php验证身份证号码是否正确函数* * * * * * * * * * * * * * * * * * * * */,   function  is_idcard (, id 美元),   {,   时间=美元才能id  strtoupper ($ id),,   regx 美元;=,才能“/(^ \ d {15} $) | (^ \ d {17} ([0 - 9] | X) $)/,,,   时间=美元才能arr_split 数组();,   如果才能(! preg_match ($ regx,, $ id)),   ,{大敌;   ,,,return 假的,,   ,,},   如果才能(15==strlen ($ id)),//检查15位,   ,{大敌;   ,,,regx 美元;=,“/^ (\ d {6}) + (\ d {2}) + (\ d {2}) + (\ d {2}) + (\ d{3})/美元,,,   ,   ,,,@preg_match (regx美元,美元id, arr_split美元),,   ,,,//检查生日日期是否正确,   ,,,dtm_birth 美元;=,“19“。美元arr_split[2],只& # 39;/& # 39;,只arr_split美元[3]只& # 39;/& # 39;,arr_split美元。[4];,   ,,,如果(! strtotime (dtm_birth美元)),   ,,,{,   ,,,,,return 假的,,   ,,,},else  {,   ,,,,,return ,真的,,   ,,,},   ,,},   else 才能,,,,,,//检查18位,   ,{大敌;   ,,,regx 美元;=,“/^ (\ d {6}) + (\ d {4}) + (\ d {2}) + (\ d {2}) + (\ d {3}) ([0 - 9] | X)/美元,,,   ,,,@preg_match (regx美元,美元id, arr_split美元),,   ,,,dtm_birth 美元;=,arr_split美元[2],只& # 39;/& # 39;,只arr_split美元[3]只& # 39;/& # 39;,arr_split美元。[4];,   ,,,如果(! strtotime (dtm_birth美元)),//检查生日日期是否正确,   ,,,{,   ,,,,,return 假的,,   ,,,},   ,,,else    ,,,{,   ,,,,,//检验18位身份证的校验码是否正确又是;   ,,,,,//校验位按照ISO  7064:1983.MOD 佳绩的规定生成,X可以认为是数字10只;   ,,,,,arr_int 美元;=,数组(7日,9日,10日,5日,,,,,,2,,1,,,,,,,,,,,,,,,,,,2),,   ,,,,,arr_ch 美元;=,数组(& # 39;1 & # 39;,,& # 39;0 & # 39;,,& # 39;x # 39;,, & # 39; 9 & # 39;,, & # 39; 8 & # 39;,, & # 39; 7 & # 39;,, & # 39; 6 & # 39;,, & # 39; 5 & # 39;,, & # 39; 4 & # 39;,, & # 39; 3 & # 39;,, & # 39; 2 & # 39;),,   ,,,,,sign 美元;=,0;,   ,,,,,for (,小姐:美元=,0;,美元小姐:& lt;, 17;,我美元+ +,),   ,,,,,{,   ,,,,,,,b 美元;=,(int), $ id{$我},,   ,,,,,,,w 美元;=,arr_int美元($ i),,   ,,,,,,,sign 美元;+=,b 美元;*,w美元;,   ,,,,,},   ,,,,,n 美元;=,sign 美元;%,11,,   ,,,,,val_num 美元;=,arr_ch美元($ n),,   ,,,,,if  (val_num 美元;!=,substr ($ id, 17日,1)),   ,,,,,{,   ,,,,,,,return 假的,,   ,,,,,},//phpfensi.com    ,,,,,else    ,,,,,{,   ,,,,,,,return ,真的,,   ,,,,,},   ,,,},   ,,},   ,   }

调用身份证验证函数
, idc美元=is_idcard(“身份证号码“);
如果美元(idc){回声“正确“;}其他{回声“错误“;}

<强>例子二:

function  validation_filter_id_card (id_card美元){,   ,如果(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美元),,   其他}{大敌;   ,return 假;   }大敌;   },//,计算身份证校验码,根据国家标准GB  11643 - 1999,   function  idcard_verify_number (idcard_base美元){,   ,如果(strlen (idcard_base美元)!=17){,   ,return 假;   }大敌;   ,//加权因子,   ,$因子=阵列(7、9、10、5、8、4、2、1、6、3、7、9、10、5、8、4、2),,   ,//校验码对应值,   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

使用php怎么验证身份证号码的正确性