> 백엔드 개발 > PHP 튜토리얼 > PHP 문자열을 바이트 배열로 어떻게 변환할 수 있나요?

PHP 문자열을 바이트 배열로 어떻게 변환할 수 있나요?

Mary-Kate Olsen
풀어 주다: 2024-11-27 18:39:11
원래의
231명이 탐색했습니다.

How Can I Convert a PHP String to a Byte Array?

PHP에서 문자열을 바이트 배열로 변환

PHP에서는 문자와 숫자가 포함된 문자열을 바이트 배열로 변환하는 다양한 방법이 있습니다. 바이트 배열. Java의 getBytes() 메소드와 마찬가지로 이 변환을 수행하는 몇 가지 접근 방식은 다음과 같습니다.

ord() 함수 사용

다음을 사용하여 문자열의 각 문자를 반복합니다. strlen(). 각 문자에 대해 ord() 함수를 사용하여 ASCII 정수 값을 얻습니다. 이러한 값을 배열 또는 바이트 배열에 저장합니다.

for ($i = 0; $i < strlen($msg); $i++) {
    $data[] = ord($msg[$i]); // Store in an array
    // or
    $byte_array .= ord($msg[$i]); // Concatenate in a byte array
}
로그인 후 복사

unpack() 함수 사용

PHP의 unpack() 함수는 문자열을 변환하는 간결한 방법을 제공합니다. 정수 값의 구조화된 배열로 변환됩니다. 이를 통해 문자열의 문자를 개별 바이트로 추출하고 재해석할 수 있습니다.

$byte_array = unpack('C*', 'The quick fox jumped over the lazy brown dog');
var_dump($byte_array);
로그인 후 복사

$byte_array 배열의 값은 0~255 범위의 각 문자에 대한 ASCII 코드를 나타내는 정수입니다.

제공된 원본 코드 조각을 고려하면 문자를 정수 값이 아닌 16진수 값으로 변환하려고 시도한 것으로 보입니다. 이를 달성하려면 문자의 ASCII 코드를 얻은 후 bin2hex() 함수를 사용할 수 있습니다:

for ($i = 0; $i < strlen($msg); $i++) {
    $data .= bin2hex(chr(ord($msg[$i]))); // Convert to hex and concatenate
}
로그인 후 복사

추가 참고 사항

  • unpack() 함수 1부터 시작하는 인덱스 배열을 생성합니다. 여기서 첫 번째 요소는 다음을 사용하여 액세스됩니다. $byte_array[1].
  • 값이 0-255 범위에 속하므로 출력 바이트 배열은 C#에서 byte[]로 쉽게 변환될 수 있습니다.
  • 대상 서버가 Java는 문자열이 아닌 바이트 배열을 기대합니다.

위 내용은 PHP 문자열을 바이트 배열로 어떻게 변환할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿