PHP 驗(yàn)證身份證是否合法的函數(shù)
更新時(shí)間:2017年02月09日 15:05:56 作者:張揚(yáng)個(gè)性,敢為天下先
本文主要介紹了PHP驗(yàn)證身份證是否合法的函數(shù)。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
話不多說(shuō),請(qǐng)看代碼:
function is_idcard( $id ) { $id = strtoupper($id); $regx = "/(^\d{15}$)|(^\d{17}([0-9]|X)$)/"; $arr_split = array(); if(!preg_match($regx, $id)) { return FALSE; } if(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] . '/' . $arr_split[3]. '/' .$arr_split[4]; if(!strtotime($dtm_birth)) { return FALSE; } else { return TRUE; } } 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] . '/' . $arr_split[3]. '/' .$arr_split[4]; if(!strtotime($dtm_birth)) //檢查生日日期是否正確 { return FALSE; } else { //檢驗(yàn)18位身份證的校驗(yàn)碼是否正確。 //校驗(yàn)位按照ISO 7064:1983.MOD 11-2的規(guī)定生成,X可以認(rèn)為是數(shù)字10。 $arr_int = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); $arr_ch = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); $sign = 0; for ( $i = 0; $i < 17; $i++ ) { $b = (int) $id{$i}; $w = $arr_int[$i]; $sign += $b * $w; } $n = $sign % 11; $val_num = $arr_ch[$n]; if ($val_num != substr($id,17, 1)) { return FALSE; } else { return TRUE; } } } }
以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!
您可能感興趣的文章:
- php用正則判斷是否為數(shù)字的方法
- PHP 正則判斷中文UTF-8或GBK的思路及具體實(shí)現(xiàn)
- php不用正則驗(yàn)證真假身份證
- php從身份證獲取性別和出生年月
- php驗(yàn)證身份證號(hào)碼正確性的函數(shù)
- 使用php從身份證號(hào)中獲取一系列線索(星座、生肖、生日等)
- php提取身份證號(hào)碼中的生日日期以及驗(yàn)證是否為成年人的函數(shù)
- php身份證號(hào)碼檢查類(lèi)實(shí)例
- PHP用星號(hào)隱藏部份用戶(hù)名、身份證、IP、手機(jī)號(hào)等實(shí)例
- Ajax和PHP正則表達(dá)式驗(yàn)證表單及驗(yàn)證碼
- php正則表達(dá)式驗(yàn)證(郵件地址、Url地址、電話號(hào)碼、郵政編碼)
- php正則判斷是否為合法身份證號(hào)的方法
相關(guān)文章
php簡(jiǎn)單實(shí)現(xiàn)無(wú)限分類(lèi)樹(shù)形列表的方法
這篇文章主要介紹了php簡(jiǎn)單實(shí)現(xiàn)無(wú)限分類(lèi)樹(shù)形列表的方法,實(shí)例分析了php通過(guò)數(shù)組實(shí)現(xiàn)樹(shù)形列表的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03PHP?laravel實(shí)現(xiàn)基本路由配置詳解
這篇文章主要為大家詳細(xì)介紹了PHP?laravel如何實(shí)現(xiàn)基本的路由配置,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以了解一下2022-10-10PHP實(shí)現(xiàn)的MD5結(jié)合RSA簽名算法實(shí)例
這篇文章主要介紹了PHP實(shí)現(xiàn)的MD5結(jié)合RSA簽名算法,結(jié)合實(shí)例形式分析了php使用md5結(jié)合RSA實(shí)現(xiàn)的簽名算法相關(guān)操作技巧,并附帶了RSA公鑰與私鑰的相關(guān)說(shuō)明,需要的朋友可以參考下2017-10-10PHP的魔術(shù)常量__METHOD__簡(jiǎn)介
這篇文章主要介紹了PHP的魔術(shù)常量__METHOD__簡(jiǎn)介,使用__METHOD__可以獲取類(lèi)中的方法名稱(chēng),PHP5之后新增的魔術(shù)常量,需要的朋友可以參考下2014-07-07thinkphp5.1 框架鉤子和行為用法實(shí)例分析
這篇文章主要介紹了thinkphp5.1 框架鉤子和行為用法,結(jié)合實(shí)例形式分析了thinkphp5.1 框架鉤子和行為基本功能、定義、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-05-05