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
)