Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP pack() 함수 완벽 가이드: 문법, 포맷 코드, 예제

PHP의 pack() 함수는 데이터를 바이너리(binary) 문자열로 패킹하는 함수입니다. 네트워크 프로토콜 통신, 파일 형식 처리처럼 바이너리 수준의 데이터 조작이 필요한 경우에 매우 유용하게 활용됩니다.

문법

pack(format, args)

매개변수

  • format − 데이터를 패킹할 때 사용할 형식입니다. 지정할 수 있는 값은 다음과 같습니다.

    • a − NUL로 채워진 문자열

    • A − 공백(SPACE)으로 채워진 문자열

    • h − 16진수 문자열 (낮은 니블(nibble)부터)

    • H − 16진수 문자열 (높은 니블부터)

    • c − 부호 있는 char

    • C − 부호 없는 char

    • s − 부호 있는 short (항상 16비트, 시스템 바이트 순서)

    • S − 부호 없는 short (항상 16비트, 시스템 바이트 순서)

    • n − 부호 없는 short (항상 16비트, 빅 엔디안)

    • v − 부호 없는 short (항상 16비트, 리틀 엔디안)

    • i − 부호 있는 정수 (시스템 의존적인 크기와 바이트 순서)

    • I − 부호 없는 정수 (시스템 의존적인 크기와 바이트 순서)

    • l − 부호 있는 long (항상 32비트, 시스템 바이트 순서)

    • L − 부호 없는 long (항상 32비트, 시스템 바이트 순서)

    • N − 부호 없는 long (항상 32비트, 빅 엔디안)

    • V − 부호 없는 long (항상 32비트, 리틀 엔디안)

    • f − float (시스템 의존적인 크기와 표현 방식)

    • d − double (시스템 의존적인 크기와 표현 방식)

    • x − NUL 바이트

    • X − 한 바이트 뒤로 이동(백업)

    • Z − NUL로 채워진 문자열

    • @ − 지정한 절대 위치까지 NUL로 채움

  • args − 패킹할 하나 이상의 인수입니다.

반환값

pack() 함수는 전달된 데이터가 담긴 바이너리 문자열을 반환합니다.

예제

아래 예제에서는 C3 포맷을 사용하여 부호 없는 char 3개를 하나의 바이너리 문자열로 패킹합니다.

<?php
   echo pack("C3", 80, 72, 80);
?>

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

PHP

아스키(ASCII) 코드에서 10진수 80은 'P', 72는 'H'에 해당하므로, 세 개의 정수 값이 각각 문자로 변환되어 최종적으로 "PHP"라는 문자열이 생성됩니다. 이처럼 pack() 함수를 활용하면 정수 값을 손쉽게 원하는 바이너리 형식으로 변환할 수 있습니다.