Maison >développement back-end >tutoriel php >Fonction PHP crc32() qui calcule le CRC 32 bits d'une chaîne
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 'Without %u: '.$str."<br>"; echo 'With %u: '; 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 'Without %u: '.$str."<br>"; echo 'With %u: '; 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!