實例
輸出crc32() 的結果:
<?php $str = crc32("Hello World!"); printf("%un",$str); ?>
定義與用法
crc32() 函數計算一個字串的32 位CRC(循環冗餘校驗)。
此函數可用來驗證資料的完整性。
提示:為確保您能從 crc32() 函數中取得正確的字串表示,您必須使用 printf() 或 sprintf() 函數的 %u 格式符號。如果未使用 %u 格式符,結果可能會顯示為不正確的數字或負數。
語法
crc32(string)
參數 說明
string 必要。規定要計算的字串。
技術細節
傳回值: 以整數形式傳回 string 的 32 位元循環冗餘校驗碼多項式。
PHP 版本: 4.0.1+
實例1
在本實例中,我們將在使用以及不使用"%u" 格式符的情況下,輸出crc32() 的結果(注意結果是相同的):
<?php $str = crc32("Hello world!"); echo 'Without %u: '.$str."<br>"; echo 'With %u: '; printf("%u",$str); ?>
上面的程式碼將輸出:
Without %u: 461707669 With %u: 461707669
實例2
在本實例中,我們將在使用以及不使用"%u" 格式符的情況下,輸出crc32() 的結果(注意結果是不相同的):
<?php $str = crc32("Hello world."); echo 'Without %u: '.$str."<br>"; echo 'With %u: '; printf("%u",$str); ?>
上面的程式碼將輸出:
Without %u: -1959132156 With %u: 2335835140
#crc32傳回的結果在32位元機上會產生溢出,所以結果可能為負數。而在64位元機上不會溢出,所以總是正值。
CRC演算法是按字長位數bit計算的。
crc32函數會依照php中的兩個常數參考計算PHP_INT_SIZE,PHP_INT_MAX
這兩個常數的定義:
整數型數的字長和平台有關,儘管通常最大值是大約二十億(32 位元有符號)。 PHP 不支援無符號整數。 Integer值的字長可以用常數PHP_INT_SIZE來表示,自 PHP 4.4.0 和 PHP 5.0.5後,最大值可以用常數PHP_INT_MAX來表示。
輸出下32位元中PHP_INT_SIZE:4,PHP_INT_MAX:2147483647
輸出下64位元中PHP_INT_SIZE:8,PHP_INT_MAX:9223372036854775807
以上是php計算一個字串的32位元CRC的函數crc32()的詳細內容。更多資訊請關注PHP中文網其他相關文章!