PHP unpack() 함수
❮ PHP 기타 참조
예시
바이너리 문자열에서 데이터 압축 풀기:
<?php
$data = "PHP";
print_r(unpack("C*",$data));
?>
정의 및 사용
unpack() 함수는 이진 문자열에서 데이터의 압축을 풉니다.
통사론
매개변수 값
Parameter |
Description |
format |
Required. Specifies the format to use when unpacking data.
Possible values:
- a - NUL-padded string
- A - SPACE-padded string
- h - Hex string, low nibble first
- H - Hex string, high nibble first
- c - signed char
- C - unsigned char
- s - signed short (always 16 bit, machine byte order)
- S - unsigned short (always 16 bit, machine byte order)
- n - unsigned short (always 16 bit, big endian byte order)
- v - unsigned short (always 16 bit, little endian byte order)
- i - signed integer (machine dependent size and byte order)
- I - unsigned integer (machine dependent size and byte order)
- l - signed long (always 32 bit, machine byte order)
- L - unsigned long (always 32 bit, machine byte order)
- N - unsigned long (always 32 bit, big endian byte order)
- V - unsigned long (always 32 bit, little endian byte order)
- q - signed long long (always 64 bit, machine byte order)
- Q - unsigned long long (always 64 bit, machine byte order)
- J - unsigned long long (always 64 bit, big endian byte order)
- P - unsigned long long (always 64 bit, little endian byte order)
- f - float (machine dependent size and representation)
- g - float (machine dependent size, little endian byte order)
- G - float (machine dependent size, big endian byte order)
- d - double (machine dependent size and representation)
- e - double (machine dependent size, little endian byte order)
- E - double (machine dependent size, big endian byte order)
- x - NUL byte
- X - Back up one byte
- Z - NUL-padded string
- @ - NUL-fill to absolute
|
data |
Required. Specifies the binary data to be unpacked |
offset |
Optional. Specifies where to start unpacking from. Default is 0. |
기술적 세부 사항
반환 값: |
성공하면 배열을 반환하고 실패하면 FALSE를 반환합니다. |
PHP 버전: |
4+ |
변경 로그: |
PHP 7.2 - float 및 double은 이제 빅 및 스몰 엔디안을 모두 지원합니다. PHP 7.1 - 선택적 오프셋 매개변수를 추가했습니다. PHP 5.5.0 - Perl 호환성을 위해 다음과 같이 변경되었습니다. "a" 코드는 이제 후행 NULL 바이트를 유지합니다. "A" 코드는 이제 모든 후행 ASCII 공백을 제거합니다. "Z" 코드는 NULL로 채워진 문자열에 추가되었으며 후행 NULL 바이트를 제거합니다. |
더 많은 예
예시
데이터 압축 풀기:
<?php
$data = "PHP";
print_r(unpack("C*myint",$data));
?>
예시
데이터 압축 풀기:
<?php
$bin = pack("c2n2",0x1234,0x5678,65,66);
print_r(unpack("c2chars/n2int",$bin));
?>
❮ PHP 기타 참조