>백엔드 개발 >PHP 문제 >PHP에서 16진수 데이터를 배열로 변환하는 방법

PHP에서 16진수 데이터를 배열로 변환하는 방법

PHPz
PHPz원래의
2023-04-26 09:14:16805검색

PHP는 웹 개발에 널리 사용되는 강력한 서버 측 스크립팅 언어입니다. PHP 개발 과정에서 데이터 변환 및 처리를 처리해야 하는 경우가 종종 있습니다. 이 글에서는 16진수 데이터를 배열로 변환하는 방법을 소개합니다.

먼저 16진수가 무엇인지 이해해야 합니다. 간단히 말해서 16진수는 16개의 숫자, 즉 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F를 사용하는 숫자 체계입니다. . 그 중 A~F는 각각 10~15를 의미합니다.

PHP에서는 hex2bin() 함수를 사용하여 16진수를 문자열로 변환할 수 있습니다. 예를 들어 다음 코드는 16진수 문자열 "48656C6C6F20576F726C64"를 "Hello World" 문자열로 변환합니다.

echo hex2bin("48656C6C6F20576F726C64");

다음으로 문자열을 배열로 변환해야 합니다. str_split() 함수를 사용하여 문자열을 개별 문자로 분할한 다음 ord() 함수를 사용하여 문자를 ASCII 코드로 변환할 수 있습니다. 예를 들어, 다음 코드는 문자열 "Hello World"를 정수 배열로 분할합니다.

$str = "Hello World";
$chars = str_split($str);
$nums = array();
foreach ($chars as $char) {
    $nums[] = ord($char);
}
print_r($nums);

출력은 다음과 같습니다.

Array
(
    [0] => 72
    [1] => 101
    [2] => 108
    [3] => 108
    [4] => 111
    [5] => 32
    [6] => 87
    [7] => 111
    [8] => 114
    [9] => 108
    [10] => 100
)

16진수 문자열을 문자열로 변환한 경우 위의 두 코드 조각 사용을 결합할 수 있습니다. 예를 들어 다음 코드는 16진수 문자열 "48656C6C6F20576F726C64"를 정수 배열로 변환합니다.

$hex_str = "48656C6C6F20576F726C64";
$str = hex2bin($hex_str);
$chars = str_split($str);
$nums = array();
foreach ($chars as $char) {
    $nums[] = ord($char);
}
print_r($nums);

출력 결과는 다음과 같습니다.

Array
(
    [0] => 72
    [1] => 101
    [2] => 108
    [3] => 108
    [4] => 111
    [5] => 32
    [6] => 87
    [7] => 111
    [8] => 114
    [9] => 108
    [10] => 100
)

위 방법을 사용하는 것 외에도 unpack() 함수를 사용할 수도 있습니다. unpack() 함수는 문자열을 여러 값으로 풀어서 연관 배열이나 숫자로 인덱스된 배열을 반환할 수 있습니다. H* 형식 지정 문자를 사용할 수 있습니다. 이는 16진수 문자열을 16진수 숫자로 변환하고 이를 2진수 문자열로 패키징하는 것을 의미합니다. 예를 들어 다음 코드는 16진수 문자열 "48656C6C6F20576F726C64"를 정수 배열로 변환합니다.

$hex_str = "48656C6C6F20576F726C64";
$bin_str = pack("H*", $hex_str);
$nums = unpack("C*", $bin_str);
print_r($nums);

출력 결과는 다음과 같습니다.

Array
(
    [1] => 72
    [2] => 101
    [3] => 108
    [4] => 108
    [5] => 111
    [6] => 32
    [7] => 87
    [8] => 111
    [9] => 114
    [10] => 108
    [11] => 100
)

unpack() 함수를 사용하는 것이 더 간결하고 효율적이지만 unpack( ) 함수 함수 이름의 별표(*)는 모든 형식이 아닌 모든 요소의 압축을 푼다는 의미입니다.

요약: 이 글에서는 16진수 데이터를 배열로 변환하는 방법을 소개합니다. hex2bin() 함수를 사용하여 16진수를 문자열로 변환한 다음 str_split() 함수를 사용하여 이를 개별 문자로 분할하고 마지막으로 ord() 함수를 사용하여 문자를 ASCII 코드로 변환할 수 있습니다. 이 외에도 unpack() 함수를 사용하여 보다 효율적으로 변환을 수행할 수도 있습니다. 이러한 방법은 실제 개발에 매우 ​​유용할 것입니다.

위 내용은 PHP에서 16진수 데이터를 배열로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.