예
crc32()의 결과 출력:
<?php $str = crc32("Hello World!"); printf("%un",$str); ?>
정의 및 사용법
crc32() 함수는 문자열의 32비트 CRC(순환 중복 검사)를 계산합니다.
이 기능은 데이터 무결성을 확인하는 데 사용할 수 있습니다.
팁: crc32() 함수에서 올바른 문자열 표현을 얻으려면 printf() 또는 sprintf() 함수의 %u 포맷터를 사용해야 합니다. %u 형식 문자를 사용하지 않으면 결과가 잘못된 숫자나 음수로 나타날 수 있습니다.
구문
crc32(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 알고리즘은 단어 길이의 비트 수를 기준으로 계산됩니다.
crc32 함수는 php의 두 상수 참조에 따라 PHP_INT_SIZE 및 PHP_INT_MAX를 계산합니다. 이 두 상수의 정의:
정수의 단어 길이는 플랫폼에 따라 다르지만 최대값은 일반적으로 약 20억(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
위 내용은 문자열의 32비트 CRC를 계산하는 PHP 함수 crc32()의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!