身分證字號檢查PHP程式
非轉貼,自認很精簡的程式碼
//函數名稱:boolean check_nick(string)
//功能:身分證字串檢查
//語法:check_pid(身分證字串)
//回傳:成功回傳true, 否則回傳false
function chk_pid($id) {
if($id=="")return false;
$id = strtoupper(trim($id)); //將英文字母全部轉成大寫,消除空白
//檢查第一個字母是否為英文字
//檢查第二個字元1 or 2 其餘為數字共十碼
$ereg_pattern= "^[A-Z]{1}[12]{1}[[:digit:]]{8}$";
if(!ereg($ereg_pattern, $id))return false;
$wd_str="BAKJHGFEDCNMLVUTSRQPZWYX0000OI";
$d1=strpos($wd_str, $id[0])%10;
$sum=0;
for($ii=1;$ii<9;$ii++)$sum+= (int)$id[$ii]*(9-$ii);
$sum += $d1 + (int)$id[9];
if($sum%10 != 0)return false;
else return true;
}
//函數名稱:boolean check_nick(string)
//功能:身分證字串檢查
//語法:check_pid(身分證字串)
//回傳:成功回傳true, 否則回傳false
function chk_pid($id) {
if($id=="")return false;
$id = strtoupper(trim($id)); //將英文字母全部轉成大寫,消除空白
//檢查第一個字母是否為英文字
//檢查第二個字元1 or 2 其餘為數字共十碼
$ereg_pattern= "^[A-Z]{1}[12]{1}[[:digit:]]{8}$";
if(!ereg($ereg_pattern, $id))return false;
$wd_str="BAKJHGFEDCNMLVUTSRQPZWYX0000OI";
$d1=strpos($wd_str, $id[0])%10;
$sum=0;
for($ii=1;$ii<9;$ii++)$sum+= (int)$id[$ii]*(9-$ii);
$sum += $d1 + (int)$id[9];
if($sum%10 != 0)return false;
else return true;
}
Powered by ScribeFire.
留言