Heim  >  Artikel  >  Backend-Entwicklung  >  So überprüfen Sie die ID-Nummer über PHP

So überprüfen Sie die ID-Nummer über PHP

jacklove
jackloveOriginal
2018-06-09 11:44:426588Durchsuche

Der Aufbau der ID-Nummer

Die ID-Nummer ist ein charakteristischer Kombinationscode, bestehend aus einem 17-stelligen Bodycode und einem Ein-Bit-Prüfcode.

Die Reihenfolge von links nach rechts ist: Sechsstelliger Adresscode, achtstelliger Geburtsdatumscode, dreistelliger Sequenzcode und einstelliger Prüfcode .

Adresscode (erste sechs Ziffern)

Gibt den Landkreis (Stadt, Banner, den Code der Verwaltungseinheit) an des Bezirks) werden gemäß den Bestimmungen von GB/T2260 umgesetzt.

Geburtsdatumscode (siebte bis vierzehnte Ziffer)

Gibt das Jahr und den Monat an, in dem das Codierungsobjekt geboren wurde , Tag, gemäß den Bestimmungen von GB/T7408 werden keine Trennzeichen zwischen den Jahres-, Monats- und Tagescodes verwendet.

Sequenzcode (15. bis 17. Ziffer)

gibt an, dass die Adressen durch denselben Adresscode innerhalb der gekennzeichnet sind In diesem Bereich werden Personen, die im selben Jahr, Monat und Tag geboren wurden, fortlaufende Nummern zugewiesen. Männern werden ungerade Nummern zugewiesen, und Frauen werden gerade Nummern zugewiesen.

Prüfcode (18. Ziffer)

1. Gewichtete Berechnung des siebzehnstelligen Ontologiecodes und die Formel

S= SUM(Ai * Wi), i=0, ... , 16, summiere zuerst die Gewichte der ersten 17 Ziffern.

Ai: Stellt den digitalen Wert der ID-Nummer an der i-ten Position dar

Wi: Stellt den Gewichtungsfaktor an der i-ten Position dar Position

Wi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2


2. Berechnungsmodul

Y = mod(S, 11)


3. Holen Sie sich den entsprechenden Prüfcode

Y: 0 1 2 3 4 5 6 7 8 9 10

Prüfcode: 1 0 X 9 8 7 6 5 4 3 2

Methode zur Überprüfung der ID-Nummer:

<?php
function checkIdCard($idcard){
    // 只能是18位
    if(strlen($idcard)!=18){
        return false;
    }
    // 取出本体码
    $idcard_base = substr($idcard, 0, 17);
    // 取出校验码
    $verify_code = substr($idcard, 17, 1);
    // 加权因子
    $factor = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
    // 校验码对应值
    $verify_code_list = array(&#39;1&#39;, &#39;0&#39;, &#39;X&#39;, &#39;9&#39;, &#39;8&#39;, &#39;7&#39;, &#39;6&#39;, &#39;5&#39;, &#39;4&#39;, &#39;3&#39;, &#39;2&#39;);
    // 根据前17位计算校验码
    $total = 0;
    for($i=0; $i<17; $i++){
        $total += substr($idcard_base, $i, 1)*$factor[$i];
    }
    // 取模
    $mod = $total % 11;
    // 比较校验码
    if($verify_code == $verify_code_list[$mod]){
        return true;
    }else{
        return false;
    }
}
$idcard = &#39;这里填写要验证的身份证号码&#39;;
var_dump(checkIdCard($idcard));
?>

In diesem Artikel wird erläutert, wie Sie die ID-Nummer über PHP überprüfen. Weitere verwandte Inhalte finden Sie unter PHP Chinesische Website.

Verwandte Empfehlungen:

So erhalten Sie YouTube-Videoinformationen über PHP

Über die Lösung zur PHP-Deserialisierung, die false zurückgibt

So generieren Sie ein entsprechendes Array basierend auf einem String über PHP


Das obige ist der detaillierte Inhalt vonSo überprüfen Sie die ID-Nummer über PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn