原作者有個錯的地方改了轉過來
<?php
/*# document: 檢查符合 gb11643-1999 標準的身份證號碼的正確性
# file:gb11643_1999.func.php fri mar 28 09:42:41 cst 2008 zxing
# updated:fri mar 28 09:42:41 cst 2008
# note: 呼叫函式 check_id();
*/$id =array();
$id = '370882198601064774';
$id = '420502198611281126';
$id = '370882198601064770';
$id = '370882860106477';
$id = '63212519850703214x';
$id = '429021198203221006';
$id = '429036198203211023';
foreach ($id as $key => $value)
/*# 函式功能:計算身份證號碼中的檢校碼
# 函式名稱:idcard_verify_number
# 參數列 :string $idcard_base 身份證號碼的前十七位
# 返回值 :string 檢校碼
*/function idcard_verify_number($idcard_base)
$factor = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); //debug 加權因子
$verify_number_list = array('1', '0', 'x', '9', '8', '7', '6', '5', '4', '3', '2'); //debug 校驗碼對應值
$checksum = 0;
for ($i = 0; $i < strlen($idcard_base); $i++)
$mod = $checksum % 11;
$verify_number = $verify_number_list[$mod];
return $verify_number;}/*
# 函式功能:將15位身份證公升級到18位
# 函式名稱:idcard_15to18
# 參數列 :string $idcard 十五位身份證號碼
# 返回值 :string
*/function idcard_15to18($idcard)elseelse
}$idcard = $idcard . idcard_verify_number($idcard);
return $idcard;}/*
# 函式功能:18位身份證校驗碼有效性檢查
# 函式名稱:idcard_checksum18
# 參數列 :string $idcard 十八位身份證號碼
# 返回值 :bool
*/function idcard_checksum18($idcard)
$idcard_base = substr($idcard, 0, 17);
if (idcard_verify_number($idcard_base) != strtoupper(substr($idcard, 17, 1)))else}/*
# 函式功能:身份證號碼檢查介面函式
# 函式名稱:check_id
# 參數列 :string $idcard 身份證號碼
# 返回值 :bool 是否正確
*/function check_id($idcard)
if(idcard_checksum18($idcard))else
}else
}?>
**:
php 驗證身份證
php 根據身份證號,自動獲取對應的星座函式 function get xingzuo cid else if month 2 day 20 month 3 day 20 else if month 3 day 20 month 4 day 20 else if month 4 day 20 mon...
超實用的php驗證身份證和js驗證身份證的方法
js驗證身份證的方法 function validateidcard idcard 0 d 1 0 2 0 1 2 d 3 0 1 d 1 9 d 1 9 d 0 d 1 0 2 0 1 2 d 3 0 1 d d xx 如果通過該驗證,說明身份證格式正確,但準確性還需計算 if regidcard...
php驗證身份證是否正確
php驗證身份證是否準確 結合網上資料整理,目前用於專案身份證驗證無問題 public function validateidcard idcard else 如果是15位身份證,則轉化為18位if strlen idcard 15 else 加權因子 factor array 7 9,10 5,8...