php crc32()函数计算一个字符串的32位CRC(循环冗余校验)

原创 国哥笔记  2018-11-26 20:12  阅读 1,796 views 次

crc32()函数定义及用法

在php中,crc32()函数是用来计算一个字符串的32位CRC,即循环冗余校验。通常用来验证数据的完整性,比如用来检查传输的数据是否被篡改,在数据存储和数据通讯领域用的非常多。

在php中,由于整数是带符号的,所以许多crc32校验码可能会返回负数,因此我们要使用sprintf()或printf()的"%u"格式符来输出,确保能获取到表示无符号crc32校验码的字符串;

crc32()函数只有一个参数,就是要计算32位CRC的字符串,函数返回值为计算结果。

crc32()函数

crc32()函数语法格式

$str = crc32(string);

参数说明

  • string:要计算32位CRC的字符串;
  • $str:接收函数返回值的变量;

实例(使用%u和不使用%u的结果对比):

<?php
header("content-type:text/html;charset=utf-8");//设置编码,解决中文乱码
$str1 = crc32("www.ggbiji.com");
$str2 = crc32("ggbiji.com");
echo '字符串1不使用%u:'.$str1."<br>";
echo '字符串1使用%u:';
printf("%u",$str1);
echo '<br>字符串2不使用%u:'.$str2."<br>";
echo '字符串2使用%u:';
printf("%u",$str2);
?>

运行结果:

php crc32()函数

说明

字符串通过crc32()函数计算的结果可能是正整数也可能是负整数,返回正整数我们直接就可以使用任意的输出语句(比如echo)就可以获得无符号的crc32校验码,如果是负整数我们得使用sprintf()或printf()的"%u"格式符来获得无符号的crc32校验码。

更多操作字符串的函数——>PHP String字符串函数大全

本文地址:https://www.ggbiji.com/php-crc32.html
版权声明:本文为 国哥笔记 原创/整理文章,欢迎分享,转载请注明出处!

发表评论


表情