(PHP 4 >= 4.0.1, PHP 5)
crc32 — Calcula el polinomio crc32 de una cadena
$str
)
Genera el polinomio de comprobación de redundancia cíclica de 32 bits
de longitud de str
. Este valor se usa por lo general
para validar la integridad de los datos transmitidos.
Dado que el tipo integer de PHP es con signo, muchas comprobaciones de suma de crc32 resultarán en números enteros negativos en plataformas de 32 bits. Aunque en instalaciones de 63 bits, todos los resultados de crc32() serán enteros positivos.
Por lo tanto, es necesario usar el formateador "%u" de sprintf() o printf() para obtener la representación de cadena de la comprobación de suma de crc32() sin signo en formato decimal.
Para una representación hexadecimal de la comprobación de suma se puede usar el formateador "%x" de sprintf() o printf() , o las funciones de conversión de dechex(), en donde se ha de tener cuidado en ambos casos de convertir el resultado de crc32() a un entero sin signo.
Las instalaciones de 64 bits también devuelven enteros negativos para resultados de valores mayores que los considerados, aunque rompería la conversión a hexadecimal ya que los valores negativos tendrían un índice 0xFFFFFFFF######## extra. Ya que las representaciones hexadecimales parecen ser el caso de uso más común, hemos decidido no deshacernos de ellas incluso si rompe la comparación decimal directa en alrededor del 59% de los casos donde se convierten de 32 a 64 bits.
Mirando atrás, el tener una función que devolvía un entero quizás no era la mejor idea y el devolver una representación de cadena hexadecimal de inmediato (como lo hace, p.ej., md5()) podría haber sido un plan mejor con el que comenzar.
Para una solución más portable se podría considerar también el
hash() genérico. hash("crc32b", $str)
devolverá la misma cadena que dechex(crc32($str))
.
str
Los datos.
Devuelve la suma de verificación CRC32 de str
como un integer.
Ejemplo #1 Mostrar una suma de verificación crc32
Este ejemplo muestro cómo imprimir una suma de verificación convertida con la función printf():
<?php
$suma = crc32("El veloz murcielago hindu comia feliz cardillo y kiwi.");
printf("%u\n", $suma);
?>