Aller au contenu

crc32()

La fonction crc32() est utilisée pour calculer une vérification de redondance cyclique (CRC) d'une chaîne. La syntaxe de la fonction crc32() est la suivante :

La syntaxe PHP de crc32()

php
int crc32 ( string $str )

La fonction prend un paramètre : la chaîne à analyser ($str). La fonction crc32() renvoie un entier non signé sur 32 bits représentant la somme de contrôle CRC de la chaîne. (Remarque : Sur les systèmes 32 bits, elle peut renvoyer un entier signé. Utilisez sprintf('%u', crc32($str)) pour garantir un résultat non signé cohérent sur toutes les plateformes.)

Voici un exemple d'utilisation de la fonction crc32() :

Exemple PHP de crc32()

php
<?php
$str = "Hello, World!";
$crc = sprintf('%u', crc32($str));
echo $crc;
?>

Dans cet exemple, nous avons une chaîne dont nous souhaitons calculer la somme de contrôle CRC. Nous passons la chaîne à la fonction crc32(), qui renvoie la somme de contrôle CRC sous la forme d'un entier non signé sur 32 bits.

La sortie de ce code sera :

console
4011902336

Comme vous pouvez le voir, la fonction crc32() a renvoyé la somme de contrôle CRC de la chaîne.

Voici un autre exemple d'utilisation de la fonction crc32() pour vérifier l'intégrité d'un fichier :

Comment utiliser crc32() en PHP ?

php
<?php
$filename = "file_to_check.txt";
$expected_crc = 123456789;
$crc = crc32(file_get_contents($filename));
if ($crc === $expected_crc) {
    echo "The file has not been corrupted.";
} else {
    echo "The file may have been corrupted.";
}
?>

Dans cet exemple, nous avons un fichier dont nous souhaitons vérifier l'intégrité. Nous calculons la somme de contrôle CRC du contenu du fichier à l'aide de la fonction crc32() et la comparons à une somme de contrôle CRC attendue. Si la somme de contrôle CRC calculée correspond à la somme de contrôle CRC attendue, nous supposons que le fichier n'a pas été corrompu. Remarque : Si $expected_crc provient d'une chaîne hexadécimale ou d'une source externe, convertissez-la en entier (par exemple, (int) hexdec($expected_crc)) avant de l'utiliser avec ===.

Notes importantes :

  • Le CRC-32 n'est pas cryptographiquement sécurisé. Il ne doit être utilisé que pour la détection d'erreurs basique, et non à des fins de sécurité ou d'authentification.
  • Il est courant de convertir le résultat en une chaîne hexadécimale à l'aide de sprintf('%08X', crc32($str)) pour une meilleure lisibilité et un formatage standard.
  • Pour les applications modernes, envisagez d'utiliser hash_file() ou hash() (par exemple, SHA-256) à la place, car le CRC-32 est rarement utilisé pour les nouveaux projets.

La fonction crc32() est un outil utile pour calculer les sommes de contrôle de redondance cyclique des chaînes et vérifier l'intégrité des données ou des fichiers. Elle peut aider à rendre votre code plus polyvalent et flexible lors de la gestion de l'intégrité des données ou de la vérification de l'intégrité d'un fichier ou d'un message. En maîtrisant cette fonction, vous pourrez devenir un développeur PHP plus compétent.

Nous espérons que cet article vous a aidé à comprendre la fonction crc32() en PHP. Si vous avez des questions ou des commentaires, n'hésitez pas à nous contacter.

Pratique

Quel est le rôle de la fonction crc32() en PHP ?

Trouvez-vous cela utile?

Aperçu dual-run — comparez avec les routes Symfony en production.