Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Funktion crc32(), die den 32-Bit-CRC eines Strings berechnet

PHP-Funktion crc32(), die den 32-Bit-CRC eines Strings berechnet

黄舟
黄舟Original
2017-11-02 10:24:042441Durchsuche

Beispiel

Das Ergebnis von crc32() ausgeben:

<?php
$str = crc32("Hello World!");
printf("%un",$str);
?>

Definition und Verwendung

Die Funktion crc32() berechnet eine Zeichenfolge 32 -bit CRC (Cyclic Redundancy Check).

Mit dieser Funktion kann die Integrität der Daten überprüft werden.

Tipp: Um sicherzustellen, dass Sie die korrekte Zeichenfolgendarstellung von der crc32()-Funktion erhalten, müssen Sie den %u-Formatierer der printf()- oder sprintf()-Funktion verwenden. Wenn das Formatzeichen %u nicht verwendet wird, werden die Ergebnisse möglicherweise als falsche oder negative Zahlen angezeigt.

Syntax

crc32(string)

Parameterbeschreibung

Zeichenfolge Erforderlich. Gibt die zu berechnende Zeichenfolge an.

Technische Details

Rückgabewert: Gibt das 32-Bit-Polynom des zyklischen Redundanzprüfcodes der Zeichenfolge in der Form einer Ganzzahl zurück.

PHP-Version: 4.0.1+

Beispiel 1

In diesem Beispiel werden wir das Ergebnis von crc32() mit und ohne den „%u“-Formatierer ausgeben (Hinweis das Ergebnis ist das gleiche):

<?php
$str = crc32("Hello world!");
echo &#39;Without %u: &#39;.$str."<br>";
echo &#39;With %u: &#39;;
printf("%u",$str);
?>

Der obige Code gibt Folgendes aus:

Without %u: 461707669
With %u: 461707669

Beispiel 2

In diesem Beispiel geben wir die Ergebnisse von crc32 aus () mit und ohne „%u“-Formatierer (beachten Sie, dass die Ergebnisse unterschiedlich sind):

<?php
$str = crc32("Hello world.");
echo &#39;Without %u: &#39;.$str."<br>";
echo &#39;With %u: &#39;;
printf("%u",$str);
?>

Der obige Code gibt Folgendes aus:

Without %u: -1959132156
With %u: 2335835140

Das von crc32 zurückgegebene Ergebnis wird Überlauf auf einem 32-Bit-Computer, daher kann das Ergebnis eine negative Zahl sein. Auf einem 64-Bit-Computer gibt es keinen Überlauf, daher ist er immer positiv.

Der CRC-Algorithmus wird basierend auf der Anzahl der Bits in der Wortlänge berechnet.

Die crc32-Funktion berechnet PHP_INT_SIZE und PHP_INT_MAX gemäß den beiden Konstantenreferenzen in PHP Die Definitionen dieser beiden Konstanten:
Die Wortlänge von Ganzzahlen hängt zusammen Obwohl das übliche Maximum etwa zwei Milliarden beträgt (32-Bit-Signatur). PHP unterstützt keine vorzeichenlosen Ganzzahlen. Die Wortlänge des
Integer-Werts kann durch die Konstante PHP_INT_SIZE dargestellt werden. Seit PHP 4.4.0 und PHP 5.0.5 kann der Maximalwert durch die Konstante PHP_INT_MAX dargestellt werden. Ausgabe PHP_INT_SIZE: 4, PHP_INT_MAX: 2147483647 in den nächsten 32 Bits
PHP_INT_SIZE: 8, PHP_INT_MAX: 9223372036854775807

Das obige ist der detaillierte Inhalt vonPHP-Funktion crc32(), die den 32-Bit-CRC eines Strings berechnet. 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