현재 위치: > 최신 기사 목록> pack () + bin2Hex ()는 데이터 인코딩 변환을 구현합니다

pack () + bin2Hex ()는 데이터 인코딩 변환을 구현합니다

M66 2025-06-05

PHP 개발에서 Pack ()Bin2Hex () 는 데이터 처리 및 인코딩 변환에 일반적으로 사용되는 두 가지 내장 기능이며 이진 데이터, 네트워크 전송, 파일 구조 포장 및 기타 시나리오를 처리하는 데 특히 유용합니다. 이 기사는이 두 기능의 사용법과이를 결합하여 데이터 인코딩 변환을 구현하는 방법에 대해 자세히 소개합니다.

1. pack () 함수 소개

pack () 함수는 주어진 값을 이진 문자열로 패키지하는 데 사용됩니다. 기본 구문은 다음과 같습니다.

 string pack(string $format, mixed $values)
  • $ 형식은 데이터 패키지 방법을 결정하는 형식 문자열입니다.

  • $ 값은 포장 할 실제 데이터이며, 이는 하나 이상일 수 있습니다.

일반적으로 사용되는 형식 문자는 다음과 같습니다.

체재 설명
기음 서명되지 않은 캐릭터 (8 비트)
N 서명되지 않은 짧은 정수 (16 비트, 대기업)
N 서명되지 않은 긴 정수 (32 비트, Big Endian)
시간* 16 진수 문자열 (높은 숫자는 먼저)

예:

 $binary = pack('N', 123456);

이 코드 라인은 정수 123456을 4 바이트 바이너리 스트링 (네트워크 엔지니어)으로 패키지합니다.

2. bin2Hex () 함수 소개

bin2Hex () 함수는 이진 데이터를 16 진수로 표시되는 문자열로 변환하는 데 사용됩니다. 구문은 다음과 같습니다.

 string bin2hex(string $string)

이것은 이진 함량을 디버깅하거나 표시하는 데 특히 유용합니다. 예를 들어:

 $binary = pack('C*', 0x12, 0xAB, 0x34);
$hex = bin2hex($binary);
echo $hex; // 산출:12ab34

3. 코딩 변환을 실현하기 위해 조합으로 사용하십시오

실제 개발에서 Pack ()bin2Hex ()는 종종 조합으로 사용됩니다. 예를 들어, 이진 프로토콜이 필요한 인터페이스로 정수 ID를 보낼 때 ID는 pack ()을 사용하여 바이너리로 인코딩 한 다음 bin2Hex ()를 사용하여 인쇄 가능한 16 진 스트링으로 변환 될 수 있습니다.

 $id = 123456;
$packed = pack('N', $id);       // 로 돌아갑니다 4 바이트 빅 엔디안 바이너리
$hex = bin2hex($packed);        // 로 돌아갑니다十六进制
echo $hex;                      // 산출:0001e240

이 프로세스는 프로토콜 또는 서명, 암호화 및 기타 목적에 필요한 식별 필드를 생성하는 데 사용될 수 있습니다.

4. 디코딩 예 : 육각형은 정수로 돌아옵니다

때로는 16 진수 문자열 (예 : API : https://m66.net/api/getid )을 얻고 원래 정수로 복원해야합니다. 현재 hex2bin ()풀 ()을 사용할 수 있습니다.

 $hex = '0001e240';
$binary = hex2bin($hex);
$data = unpack('Nid', $binary);
echo $data['id']; // 산출:123456

Unpack ()는 pack () 의 ​​역 작동입니다. 여기에서 NID 형식은 32 비트 대기업 정수를 읽는 것을 의미하며 변수 이름은 ID 입니다.

5. 응용 프로그램 시나리오

  1. 네트워크 통신 프로토콜 패킷 포장 풀기

  2. 암호화 된 통신에서 데이터 다이제스트 계산

  3. QR 코드, IoT 장치 데이터와 같은 Process 16 진수 데이터 형식

  4. 이진 파일 형식을 읽고 구문 분석합니다

요약

Pack ()bin2Hex () 는 PHP의 강력한 도구입니다. 기본 데이터 인코딩을 처리합니다. 서식 규칙과 사용을 이해하면 네트워크 프로토콜, 데이터 압축 및 시스템 통합을 처리 할 때 편안하게 도움이 될 수 있습니다. 이 두 기능을 마스터하면 코딩 효율성을 향상시킬뿐만 아니라 기본 데이터 표현에 대한 이해가 넓어 질 수 있습니다.