crc32
crc32
(PHP 4 >= 4.0.1, PHP 5, PHP 7)
crc32 - 计算字符串的crc32多项式
描述
int crc32 ( string $str )
生成str的32位长度的循环冗余校验和多项式。 这通常用于验证正在传输的数据的完整性。
警告
由于PHP的整数类型是有符号的,因此许多crc32校验和会在32位平台上产生负整数。在64位安装中,所有的crc32()
结果都是正整数。
因此,您需要使用sprintf()或printf()的“%u”格式化程序以十进制格式获取未签名的crc32()
校验和的字符串表示形式。
对于校验和的十六进制表示,您可以使用sprintf()或printf()或dechex()转换函数的“%x”格式化程序,这两种方法都可以将crc32()
结果转换为无符号整数。
有64位安装也返回负整数为更高的结果值被考虑,但会打破十六进制转换为负面会得到额外的0xFFFFFFFF ########偏移。由于十六进制表示法似乎是最常见的用例,因此即使在从32位移动到64位时约50%的情况下它打破了直接十进制比较,我们仍决定不会破坏这一点。
回想起来,函数返回一个整数可能不是最好的想法,并立即返回一个十六进制字符串表示形式(例如md5())可能是一个更好的计划。
对于更便携的解决方案,您可能还会考虑通用散列()。 hash(“crc32b”,$ str)将返回与str_pad(dechex(crc32($ str)),8,'0',STR_PAD_LEFT相同的字符串。
参数
str
数据。
返回值
以整数形式返回str的crc32校验和。
例子
示例#1显示crc32校验和
此示例显示如何使用printf()函数打印转换后的校验和:
<?php
$checksum = crc32("The quick brown fox jumped over the lazy dog."
printf("%u\n", $checksum
?>
扩展内容
- hash() - 生成一个散列值(消息摘要)
- md5() - 计算字符串的md5散列
- sha1() - 计算字符串的sha1哈希
← count_chars
crypt →