(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)
crc32 — Bir dizgenin crc32 çok terimlisini hesaplar
dizge
dizgesinin çevrimsel artıklık sağlaması çok terimlisinin sonucunu hesaplar. Bu genellikle aktarılan bir verinin bütünlük doğrulamasını yapmak için kullanılır.
PHP'nin tamsayı türü işaretli olduğundan ve çoğu crc32 sağlaması 32 bitlik platformlarda negatif tamsayılar üretir. işaretsiz crc32 sağlamalarının dizgesel gösterimlerini elde etmek için sprintf() ve printf() işlevlerinde "%u" belirtimini kullanın
PHP'nin tamsayı türü işaretli olduğundan ve çoğu crc32 sağlaması 32 bitlik kurulumlarda negatif tamsayılar üretir. 64 bitlik kurulumlarda ise tüm crc32() sonuçları positif tamsayılardır.
Ondalık biçemdeki işaretsiz crc32() sağlamalarının dizgesel gösterimlerini elde etmek için sprintf() ve printf() işlevlerinde "%u" belirtimi kullanılır.
Sağlama toplamının onaltılık gösterimi için, sprintf() veya printf() işlevinin "%x" biçimlendiricisini veya dechex() dönüştürme işlevlerini kullanabilirsiniz; bunların her ikisi de crc32() sonucunu işaretsiz bir tam sayıya dönüştürmeye özen gösterir.
64 bit kurulumlara sahip olunması durumunda, daha büyük sonuç değerleri için negatif tamsayılar döndürülmesi de düşünüldü, ancak bu onaltılık değer dönüştürmeyi bozacaktı, çünkü bu takdirde negatif değerler fazladan 0xFFFFFFFF ######## başlangıcı elde edecekti. Onaltılık gösterim en yaygın kullanım durumu gibi göründüğünden, 32 bitten 64 bite geçiş, doğrudan ondalık karşılaştırmaların yaklaşık %50'sini bozsa bile negatif tamsayılar döndürmemeye karar verdik.
Geçmişe bakıldığında, işlevin bir tamsayı döndürmesi belki en iyi fikir değildi ve hemen onaltılık bir dize gösterimi döndürmek (md5()'in yaptığı gibi), başlangıç için daha iyi bir plan olabilirdi.
Daha taşınabilir bir çözüm için hash() işlevini de düşünebilirsiniz. hash("crc32b", $str)
kodu ile, str_pad(dechex(crc32($str)), 8, '0', STR_PAD_LEFT)
kodu aynı dizeyi döndürür.
dizge
Veri.
dizge
dizgesinin crc32 sağlamasını bir tamsayı olarak döndürür.
Örnek 1 - Bir crc32 sağlamasının gösterilmesi
Bu örnekte sağlama toplamını basmak için printf() işlevinin kullanımı gösterilmiştir.
<?php
$checksum = crc32("The quick brown fox jumped over the lazy dog.");
printf("%u\n", $checksum);
?>