コードをコピーします コードは次のとおりです:
// 国家標準GB 11643-1999に従ってIDカード検証コードを計算します
function idcard_verify_number($idcard_base){
if ( strlen($idcard_base) ! = 17){ return false }
// 重み付け係数
$factor = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10) , 5, 8, 4 , 2);
// 検証コード対応値
$verify_number_list = array('1', '0', 'X', '9', '8', '7', '6' , '5', '4', '3', '2');
$checksum = 0;
for ($i
$mod = $checksum % 11;
return $verify_number; / 15 桁の ID を置き換えます ID カードを 18 ビットにアップグレードします
function idcard_15to18($idcard){
if (strlen($idcard) != 15){
return false;
}else{
// ID カードの場合シーケンス コードは 996 997 998 999 です。これらは 100 歳以上の人のための特別なエンコードです
if (array_search(substr($idcard, 12, 3), array('996', '997', '998', '999' )) !== false){
$ idcard = substr($idcard, 0, 6) .substr($idcard, 6, 9);
$idcard = substr($idcard, 0) , 6) .substr($idcard, 6, 9);
$idcard = $idcard_number($idcard);
// 18 桁の ID 検証コードの有効性チェック
function idcard_checksum18($ idcard){
if (strlen($idcard) != 18){ return false; }
$idcard_base = substr($idcard, 0, 17); != strtoupper(substr($idcard , 17, 1)){
return false;
}else{
}
}
?> ここで、$idcard_base は ID カードの標準コードを指します。 、標準コードは 18 桁の ID カードです。これは 、つまり 18 桁の ID カードの最初の 17 桁のみにあり、最後の桁は認証コードと呼ばれます。通常は必要ありません。 idcard_verify_number() を使用する場合は、直接呼び出してください。通常のアプリケーションのほとんどは、これらの関数を使用します。ID 文字列の形式は誰も気にせず、呼び出す前に形式をチェックします
。
以上、Office 正規認証と PHP 本人確認の機能を Office 正規認証の内容も含めて紹介しましたが、PHP チュートリアルに興味のある友人の参考になれば幸いです。