PHP 개발에서 Pack () 및 Bin2Hex () 는 데이터 처리 및 인코딩 변환에 일반적으로 사용되는 두 가지 내장 기능이며 이진 데이터, 네트워크 전송, 파일 구조 포장 및 기타 시나리오를 처리하는 데 특히 유용합니다. 이 기사는이 두 기능의 사용법과이를 결합하여 데이터 인코딩 변환을 구현하는 방법에 대해 자세히 소개합니다.
pack () 함수는 주어진 값을 이진 문자열로 패키지하는 데 사용됩니다. 기본 구문은 다음과 같습니다.
string pack(string $format, mixed $values)
$ 형식은 데이터 패키지 방법을 결정하는 형식 문자열입니다.
$ 값은 포장 할 실제 데이터이며, 이는 하나 이상일 수 있습니다.
일반적으로 사용되는 형식 문자는 다음과 같습니다.
체재 | 설명 |
---|---|
기음 | 서명되지 않은 캐릭터 (8 비트) |
N | 서명되지 않은 짧은 정수 (16 비트, 대기업) |
N | 서명되지 않은 긴 정수 (32 비트, Big Endian) |
시간* | 16 진수 문자열 (높은 숫자는 먼저) |
예:
$binary = pack('N', 123456);
이 코드 라인은 정수 123456을 4 바이트 바이너리 스트링 (네트워크 엔지니어)으로 패키지합니다.
bin2Hex () 함수는 이진 데이터를 16 진수로 표시되는 문자열로 변환하는 데 사용됩니다. 구문은 다음과 같습니다.
string bin2hex(string $string)
이것은 이진 함량을 디버깅하거나 표시하는 데 특히 유용합니다. 예를 들어:
$binary = pack('C*', 0x12, 0xAB, 0x34);
$hex = bin2hex($binary);
echo $hex; // 산출:12ab34
실제 개발에서 Pack () 및 bin2Hex ()는 종종 조합으로 사용됩니다. 예를 들어, 이진 프로토콜이 필요한 인터페이스로 정수 ID를 보낼 때 ID는 pack ()을 사용하여 바이너리로 인코딩 한 다음 bin2Hex ()를 사용하여 인쇄 가능한 16 진 스트링으로 변환 될 수 있습니다.
$id = 123456;
$packed = pack('N', $id); // 로 돌아갑니다 4 바이트 빅 엔디안 바이너리
$hex = bin2hex($packed); // 로 돌아갑니다十六进制
echo $hex; // 산출:0001e240
이 프로세스는 프로토콜 또는 서명, 암호화 및 기타 목적에 필요한 식별 필드를 생성하는 데 사용될 수 있습니다.
때로는 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 입니다.
네트워크 통신 프로토콜 패킷 포장 풀기
암호화 된 통신에서 데이터 다이제스트 계산
QR 코드, IoT 장치 데이터와 같은 Process 16 진수 데이터 형식
이진 파일 형식을 읽고 구문 분석합니다
Pack () 및 bin2Hex () 는 PHP의 강력한 도구입니다. 기본 데이터 인코딩을 처리합니다. 서식 규칙과 사용을 이해하면 네트워크 프로토콜, 데이터 압축 및 시스템 통합을 처리 할 때 편안하게 도움이 될 수 있습니다. 이 두 기능을 마스터하면 코딩 효율성을 향상시킬뿐만 아니라 기본 데이터 표현에 대한 이해가 넓어 질 수 있습니다.