Heim >Backend-Entwicklung >PHP-Tutorial >PHP-Beispiel für die Berechnungsmethode für den ID-Karten-Bestätigungscode

PHP-Beispiel für die Berechnungsmethode für den ID-Karten-Bestätigungscode

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-08-17 13:02:351409Durchsuche

Die Bedeutung jeder Bürger-ID-Nummer Chinas (Festland) wurde in vielen Artikeln im Internet erläutert, daher werde ich hier nicht näher darauf eingehen. Die letzte Ziffer der ID-Nummer ist der Prüfcode, der aus den ersten 17 Ziffern berechnet wird. Der Algorithmus sieht ungefähr wie folgt aus: Multiplizieren Sie jede Zahl in den ersten 17 Ziffern mit einer Reihe von Gewichtungsfaktoren, berechnen Sie dann die Summe dieser Produkte Modulo 11 als Seriennummer und extrahieren Sie sie schließlich aus a Prüfcodezeichenfolge Gibt die Zeichen aus, die der Seriennummer entsprechen. Natürlich gibt es im Internet viele Artikel, in denen Sie lernen, diesen Prüfcode zu berechnen. Im Folgenden werden wir versuchen, diese Arbeit mit der PHP-Sprache abzuschließen. Er kann in der PHP-Entwicklung verwendet werden, um beispielsweise zu überprüfen, ob die ID-Nummer des Benutzers korrekt ist.

Angenommen, die ersten 17 Ziffern der Personalausweisnummer eines chinesischen Staatsbürgers (Festland) lauten wie folgt: 44010221990101001 (Hinweis: Diese Person wurde im Jahr 2199 geboren). Dann versuchen wir, ein paar Zeilen PHP-Code zu schreiben, um den Prüfcode zu vervollständigen nach obigem Algorithmus. Um es für alle verständlicher zu machen, habe ich einfachere Aussagen verwendet, siehe Code:

<&#63;php
//身份证号码前17位,可以从各种数据源中获得(如数据库、用户提交的表单等)
$body = '44010221990101001';
//加权因子
$wi = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
//校验码串
$ai = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
//按顺序循环处理前17位
for ($i = 0;$i < 17;$i++) {
//提取前17位的其中一位,并将变量类型转为实数
$b = (int) $body{$i};
//提取相应的加权因子
$w = $wi[$i];
//把从身份证号码中提取的一位数字和加权因子相乘,并累加
$sigma += $b * $w;
}
//计算序号
$number = $sigma % 11;
//按照序号从校验码串中提取相应的字符。
$check_number = $ai[$number];
//输出
echo $body.$check_number;
&#63;>

Nachdem der obige Code ausgeführt wurde, kann berechnet werden, dass der Verifizierungscode des Personalausweises 9 ist. Sie können es mit den ersten 17 Ziffern Ihres Personalausweises versuchen.

Wenn Sie das obige Beispiel verstehen, können Sie einige Anweisungen dieses Codes zusammenführen, unnötige Variablen entfernen und optimieren, um den folgenden Code zu erhalten:

<&#63;php
$body = '44010221990101001';
$wi = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
$ai = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
for ($i = 0;$i < 17;$i++) {
$sigma += ((int) $body{$i}) * $wi[$i];
}
echo $body.$ai[($sigma % 11)];
&#63;>

Das Obige ist die vom Herausgeber eingeführte Methode zur Berechnung des PHP-ID-Karten-Bestätigungscodes. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Herausgeber wird Ihnen rechtzeitig antworten. Ich möchte mich auch bei Ihnen allen für Ihre Unterstützung der Script House-Website bedanken!

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