PHP unpack() 함수
정의와 사용법
unpack() 함수는 바이너리 문자열에서 데이터를 해제합니다.
문법
unpack(format,data)
매개변수 | 설명 |
---|---|
format | 필수. 해제 데이터에 사용할 형식을 지정합니다. |
data | 선택 사항. 해제된 바이너리 데이터를 지정합니다. |
format 매개변수의 가능한 값:
- 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 (항상 16비트, 기계(byte order) 순서)
- S - unsigned short (항상 16비트, 기계(byte order) 순서)
- n - unsigned short (항상 16비트, big endian byte order)
- v - unsigned short (항상 16비트, little endian byte order)
- i - signed integer (기계 종속 크기와 byte order)
- I - unsigned integer (기계 종속 크기와 byte order)
- l - signed long (항상 32비트, 기계(byte order) 순서)
- L - unsigned long (항상 32비트, 기계(byte order) 순서)
- N - unsigned long (always 32 bit, big endian byte order)
- V - unsigned long (always 32 bit, little endian byte order)
- f - float (machine dependent size and representation)
- d - double (machine dependent size and representation)
- x - NUL byte
- X - Back up one byte
- @ - NUL-filled to absolute position
예제
예제 1
<?php $data = "PHP"; print_r(unpack("C*",$data)); ?>
출력:
Array ( [1] => 80 [2] => 72 [3] => 80 )
예제 2
<?php $data = "PHP"; print_r(unpack("C*myint",$data)); ?>
출력:
Array ( [myint1] => 80 [myint2] => 72 [myint3] => 80 )
예제 3
<?php $bin = pack("c2n2",0x1234,0x5678,65,66); print_r(unpack("c2chars/n2int",$bin)); ?>
출력:
Array ( [chars1] => 52 [chars2] => 120 [int1] => 65 [int2] => 66 )