這篇文章將為大家詳細(xì)講解有關(guān)PHP如何判斷身份證號,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

專業(yè)領(lǐng)域包括成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、商城網(wǎng)站開發(fā)、微信營銷、系統(tǒng)平臺開發(fā), 與其他網(wǎng)站設(shè)計及系統(tǒng)開發(fā)公司不同,成都創(chuàng)新互聯(lián)公司的整合解決方案結(jié)合了幫做網(wǎng)絡(luò)品牌建設(shè)經(jīng)驗和互聯(lián)網(wǎng)整合營銷的理念,并將策略和執(zhí)行緊密結(jié)合,為客戶提供全網(wǎng)互聯(lián)網(wǎng)整合方案。
身份證號
/**
* 判斷參數(shù)字符串是否為天朝身份證號
* @param $id 需要被判斷的字符串或數(shù)字
* @return mixed false 或 array[有內(nèi)容的array boolean為真]
*/
function is_citizen_id($id) {
//長度效驗 18位身份證中的X為大寫
$id = strtoupper($id);
if(!(preg_match('/^\d{17}(\d|X)$/',$id) || preg_match('/^\d{15}$/',$id))) {
return false;
}
//15位老號碼轉(zhuǎn)換為18位 并轉(zhuǎn)換成字符串
$Wi = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1);
$Ai = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
$cardNoSum = 0;
if(strlen($id)==16) {
$id = substr(0, 6).'19'.substr(6, 9);
for($i = 0; $i < 17; $i++) {
$cardNoSum += substr($id,$i,1) * $Wi[$i];
}
$seq = $cardNoSum % 11;
$id = $id.$Ai[$seq];
}
//效驗18位身份證最后一位字符的合法性
$cardNoSum = 0;
$id17 = substr($id,0,17);
$lastString = substr($id,17,1);
for($i = 0; $i < 17; $i++) {
$cardNoSum += substr($id,$i,1) * $Wi[$i];
}
$seq = $cardNoSum % 11;
$realString = $Ai[$seq];
if($lastString!=$realString) {return false;}
//地域效驗
$oCity = array(11=>"北京",12=>"天津",13=>"河北",14=>"山西",15=>"內(nèi)蒙古",21=>"遼寧",22=>"吉林",23=>"黑龍江",31=>"上海",32=>"江蘇",33=>"浙江",34=>"安徽",35=>"福建",36=>"江西",37=>"山東",41=>"河南",42=>"湖北",43=>"湖南",44=>"廣東",45=>"廣西",46=>"海南",50=>"重慶",51=>"四川",52=>"貴州",53=>"云南",54=>"西藏",61=>"陜西",62=>"甘肅",63=>"青海",64=>"寧夏",65=>"新疆",71=>"臺灣",81=>"香港",82=>"澳門",91=>"國外");
$City = substr($id, 0, 2);
$BirthYear = substr($id, 6, 4);
$BirthMonth = substr($id, 10, 2);
$BirthDay = substr($id, 12, 2);
$Sex = substr($id, 16,1) % 2 ;//男1 女0
//$Sexcn = $Sex?'男':'女';
//地域驗證
if(is_null($oCity[$City])) {return false;}
//出生日期效驗
if($BirthYear>2078 || $BirthYear<1900) {return false;}
$RealDate = strtotime($BirthYear.'-'.$BirthMonth.'-'.$BirthDay);
if(date('Y',$RealDate)!=$BirthYear || date('m',$RealDate)!=$BirthMonth || date('d',$RealDate)!=$BirthDay) {
return false;
}
return array('id'=>$id,'location'=>$oCity[$City],'Y'=>$BirthYear,'m'=>$BirthMonth,'d'=>$BirthDay,'sex'=>$Sex);
}關(guān)于“PHP如何判斷身份證號”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
網(wǎng)頁標(biāo)題:PHP如何判斷身份證號
本文路徑:http://www.chinadenli.net/article38/piejpp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、做網(wǎng)站、面包屑導(dǎo)航、定制開發(fā)、虛擬主機(jī)、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)