ホームページ  >  記事  >  バックエンド開発  >  PHP 認証関数_PHP チュートリアル

PHP 認証関数_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:36:01813ブラウズ

個人的に便利だと感じたIDカード関連の機能をいくつか書きましたが、特にオンラインアンケートを行う際に個人情報のIDカードを確認するのは非常に便利ですが、回答が少なかったのでそのままにしました。私のブログでは気にしないでください。
// 国家標準 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 = 0; $i $checksum += substr($idcard_base, $i, 1) * $factor[$i] ;

}


$mod = $checksum % 11;
$verify_number = $verify_number_list[$mod];
$verify_number を返す

}

// 15 桁の ID カードを 18 桁にアップグレードします

function idcard_15to18($idcard){

if (strlen($idcard) != 15){

}else{

}else{

// ID カードのシーケンスの場合コードは 996 997 998 999 です。これらは 100 歳以上の人のための特別なコードです
if (array_search(substr($idcard, 12, 3), array(996, 997, 998, 999)) !== false){ = substr($idcard, 0, 6) . substr($idcard, 6, 9); 9);
$idcard = $idcard . idcard_verify_number($idcard);
$idcard を返す
}

// 18桁のIDカード確認コードの有効性チェック
function idcard_checksum18($idcard){
if (strlen($idcard) != 18){ return false; }
$idcard_base = substr($idcard, 0, 17 ) ;

if (idcard_verify_number($idcard_base) != strtoupper(substr($idcard, 17, 1)){

return false;

}else{

return true;

$idcard_base は ID カードのベース コードを指します。ベース コードは 18 桁の ID カードにのみ存在し、18 桁の ID カードの最初の 17 桁はチェック コードと呼ばれます。
通常は idcard_verify_number() を直接呼び出す必要はありません。通常のアプリケーションのほとんどは後者の 2 つの関数を使用します。これらの関数は ID 文字列の形式を考慮せず、呼び出し前に形式がチェックされます。




http://www.bkjia.com/PHPjc/508253.html


www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/508253.html

技術記事


IDカードに関する機能をいくつか書きましたが、特にオンラインアンケートを実施する際に個人情報のIDカードを認証するのに非常に便利ですが、応募者が少ないです...

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。