"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > PHP에서 문자열을 바이너리로 변환하고 다시 변환하는 방법은 무엇입니까?

PHP에서 문자열을 바이너리로 변환하고 다시 변환하는 방법은 무엇입니까?

2024-11-08에 게시됨
검색:912

How to Convert Strings to Binary and Back in PHP?

PHP에서 바이너리 및 문자열 변환: 종합 가이드

PHP에서 데이터 작업을 할 때 서로 다른 형식 간에 변환해야 하는 경우가 많습니다. 일반적인 변환 중 하나는 문자열과 바이너리 간의 변환입니다. 데이터를 안전하게 저장하기 위해서든 성능을 최적화하기 위해서든 이러한 형식 간 변환 방법을 이해하는 것이 필수적입니다.

문제:

문자열을 바이너리로 변환한 다음 다시 문자열로 변환하는 방법 표준 PHP 라이브러리에 있나요? 이는 안전한 데이터 저장 및 조작에 대한 일반적인 요구 사항입니다.

해결책:

일부 프로그래밍 언어와 달리 PHP에는 문자열을 바이너리로 직접 변환하는 내장 함수가 없습니다. 그러나 pack() 및 base_convert() 함수의 조합으로 이 기능을 구현할 수 있습니다.

이진을 문자열로:

이진 문자열을 원래 문자열로 다시 변환하려면 pack을 사용할 수 있습니다. () 및 base_convert(). pack() 함수는 형식 문자열과 이진 데이터 문자열을 가져와 결합하여 문자열을 만듭니다. 우리의 경우 형식 문자열은 16진수 문자열을 나타내는 'H*'입니다. base_convert() 함수는 문자열을 한 베이스에서 다른 베이스로 변환합니다. 이 경우 16진수 문자열을 ASCII 문자 집합으로 변환합니다:

// Convert binary into a string
$string = pack('H*', base_convert('0101001101110100011000010110001101101011', 2, 16));

문자열을 이진수로:

문자열을 이진수로 변환하려면 unpack( ) 및 base_convert(). unpack() 함수는 형식 문자열과 문자열을 사용하고 지정된 형식에 따라 문자열에서 데이터를 추출합니다. 우리의 경우 16진수 데이터를 추출하기 위해 'H*' 형식을 지정합니다. base_convert() 함수는 문자열을 한 베이스에서 다른 베이스로 변환합니다. 여기서는 ASCII 문자열을 이진 표현을 나타내는 16진수 문자열로 변환합니다.

// Convert a string into binary
$binary = unpack('H*', 'Stack');
echo base_convert($binary[1], 16, 2);

예:

예를 들어 모두 정리해 보겠습니다.

// Convert "Stack" to binary
$binary = unpack('H*', 'Stack');
$binaryString = base_convert($binary[1], 16, 2);
echo "Binary: $binaryString\n";

// Convert binary back to "Stack"
$asciiString = pack('H*', base_convert($binaryString, 2, 16));
echo "String: $asciiString\n";

출력:

Binary: 0101001101110100011000010110001101101011
String: Stack

이러한 함수를 활용하면 PHP에서 문자열과 바이너리 간을 효과적으로 변환할 수 있습니다. 이 지식은 데이터 암호화, 파일 조작 및 기타 다양한 작업에 매우 중요합니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3