Maison >développement back-end >tutoriel php >Fonction PHP crc32() qui calcule le CRC 32 bits d'une chaîne

Fonction PHP crc32() qui calcule le CRC 32 bits d'une chaîne

黄舟
黄舟original
2017-11-02 10:24:042490parcourir

Exemple

Afficher le résultat de crc32() :

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

Définition et utilisation

La fonction crc32() calcule une chaîne 32 -bit CRC (vérification de redondance cyclique).

Cette fonction peut être utilisée pour vérifier l'intégrité des données.

Conseil : Pour vous assurer que vous obtenez la représentation de chaîne correcte de la fonction crc32(), vous devez utiliser le formateur %u de la fonction printf() ou sprintf(). Si le caractère de format %u n'est pas utilisé, les résultats peuvent apparaître sous forme de nombres incorrects ou de nombres négatifs.

Syntaxe

crc32(string)

Description du paramètre

chaîne Obligatoire. Spécifie la chaîne à calculer.

Détails techniques

Valeur de retour : renvoie le polynôme de code de contrôle de redondance cyclique 32 bits de chaîne sous la forme de entier.

Version PHP : 4.0.1+

Exemple 1

Dans cet exemple, nous afficherons avec et sans le formateur "%u" Résultat de crc32() (note le résultat est le même) :

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

Le code ci-dessus affichera :

Without %u: 461707669
With %u: 461707669

Exemple 2

Dans cet exemple, nous afficherons les résultats de crc32 () avec et sans le formateur "%u" (notez que les résultats sont différents) :

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

Le code ci-dessus affichera :

Without %u: -1959132156
With %u: 2335835140

Le résultat renvoyé par crc32 sera débordement sur une machine 32 bits, le résultat peut donc être un nombre négatif. Sur une machine 64 bits, il n’y a pas de débordement, il est donc toujours positif.

L'algorithme CRC est calculé en fonction du nombre de bits dans la longueur du mot.

La fonction crc32 calculera PHP_INT_SIZE et PHP_INT_MAX en fonction des deux références constantes en PHP
Les définitions de ces deux constantes :
La longueur des mots des nombres entiers est liée. à la plate-forme. Bien que le maximum habituel soit d'environ deux milliards (signé 32 bits). PHP ne prend pas en charge les entiers non signés. La longueur du mot de la valeur Integer peut être représentée par la constante PHP_INT_SIZE Depuis PHP 4.4.0 et PHP 5.0.5, la valeur maximale peut être représentée par la constante PHP_INT_MAX.
Sortie PHP_INT_SIZE : 4, PHP_INT_MAX : 2147483647 dans les 32 bits suivants
PHP_INT_SIZE : 8, PHP_INT_MAX : 9223372036854775807

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn