ホームページ  >  記事  >  バックエンド開発  >  PHP 検証 ID カード コレクション_PHP チュートリアル

PHP 検証 ID カード コレクション_PHP チュートリアル

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

IDカード関連の機能は、特にオンラインアンケートを行う際にとても便利だと感じたので、投稿して共有したいと思います。

//国家標準 GB 11643-1999 に従って ID カード検証コードを計算します
function idcard_verify_number($idcard_base){
if (strlen($idcard_base) != 17){ return false }
// Weighted; Factor
$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 = $チェックサム % 11;

$verify_number = $verify_number_list[$mod];

$verify_number を返す
}

// 15 桁の 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 .idcard_verify_number($idcard);
$idcard を返す
}

// 18桁のIDカード認証コードの有効性チェック
function idcard_checksum18($idcard){

if (strlen($idcard) != 18){ return false; }

$idcard_base = substr($idcard, 0, 17 ; ID カード内の標準コードを指します。標準コードは 18 桁の ID カードの最初の 17 桁のみを指します。一般に、最後の桁は認証コードと呼ばれます。これを使用するときに idcard_verify_number を直接呼び出す必要はありません ()。通常のアプリケーションのほとんどは、ID 文字列の形式を気にせず、呼び出す前に独自に形式チェックを実行します。



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

www.bkjia.com

tru​​e

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

技術記事

個人的にIDカード機能は非常に便利だと感じており、特にオンラインアンケートを行う際に個人情報のIDカードを確認できるので投稿して共有したいと思います。 <?php // 計画...

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