(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)
crc32 — Calcule la somme de contrôle CRC32
Description
crc32(string
$string
): int
Avertissement
En raison du fait que le type entier de PHP est signé,
la plupart des sommes de contrôle crc32 se trouve être des
entiers négatifs sur les plateformes 32bits. Sur des installations
64bits, tous les résultats de la fonction crc32()
seront des entiers positifs.
Aussi, vous devez utiliser le formatteur "%u" de la fonction
sprintf() ou de la fonction printf()
pour récupérer une représentation en chaîne de caractères de la somme
de contrôle non-signée de la fonction crc32()
au format décimal.
Pour une représentation hexadécimale de la somme de contrôle, vous
pouvez utiliser soit le formatteur "%x" de la fonction sprintf()
ou de la fonction printf() , ou bien les fonctions de
conversion dechex(), les deux solutions prennent soin
de convertir le résultat de la fonction crc32()
en un entier non-signé.
Sur les installations 64bits, la fonction retournera aussi des entiers
négatifs pour des valeurs retournées très grandes, mais cela va casser
la conversion en hexadécimal en ayant une position 0xFFFFFFFF########
supplémentaire. Sachant que la représentation décimale semble être le
cas le plus largement utilisé, nous avons décidé de ne pas la casser
même si elle casse directement la comparaison décimale dans 50% des
cas lors d'un passage de 32 à 64bits.
Avec du recul, le fait que la fonction retourne un entier n'était peut-être
pas la meilleure idée, et retourner dès le début une représentation hexadécimale
sous la forme d'une chaîne de caractères (tel que le fait la fonction
md5()), aurait été meilleure solution.
Pour une solution plus pérenne, vous pouvez vous retourner vers la fonction
générique hash(). hash("crc32b", $str)
va retourner la même chaîne de caractères que str_pad(dechex(crc32($str)), 8, '0', STR_PAD_LEFT)
.
Liste de paramètres
-
string
-
Les données.
Valeurs de retour
Retourne la somme de contrôle crc32 de la chaîne
string
, sous la forme d'un entier.
Exemples
Exemple #1 Afficher une somme de contrôle CRC32
Cet exemple illustre comment afficher la somme de contrôle
avec la fonction printf() :
<?php
$checksum = crc32("Le vif zéphyr jubile sur les kumquats du clown gracieux.");
printf("%u\n", $checksum);
?>
Voir aussi
- hash() - Génère une valeur de hachage (empreinte numérique)
- md5() - Calcule le md5 d'une chaîne
- sha1() - Calcule le sha1 d'une chaîne de caractères