정의 및 사용 방법
- PHP 버전
- 4+
base64_encode()
함수는 문자열 타입의 데이터를 MIME Base64로 인코딩한 문자열로 반환합니다.
주로 이메일, HTTP 헤더, JSON 등 텍스트 기반 환경에서, 문자열 타입 데이터를 문자 코드에 영향을 받지 않고 손상 없이 안전하게 전송할 때 사용됩니다.
특징
- 주어진 문자열(원본 데이터)을 MIME base64로 인코딩합니다.
- 이 인코딩은 메일 본문과 같이 8비트 전송 환경에서 손상될 수 있는 이진 데이터가 손상되지 않도록 설계되었습니다.
- MIME Base64로 인코딩된 데이터는 원본 데이터보다 약 33% 더 많은 공간을 차지합니다.
구문
base64_encode(string $string): string
매개변수
$string |
Base64로 변환할 원본 데이터(문자열 타입) |
---|
반환 값
인코딩된 데이터를 문자열로 반환합니다.
예제
base64_encode()
함수는 텍스트 데이터와 문자열로 된 바이너리 데이터를 모두 인코딩할 수 있습니다. 아래 예제를 통해 각 경우의 사용법을 알아보세요.
간단한 텍스트 인코딩
base64_encode()
는 텍스트를 입력받아 MIME Base64로 인코딩된 문자열을 반환합니다. 이 예제는 가장 기본적인 작동 방식을 보여줍니다.
$str = 'Hello, World!';
$encoded_str = base64_encode($str);
echo "원본 문자열: " . $str . "\n";
echo "인코딩된 문자열: " . $encoded_str;
원본 문자열: Hello, World! 인코딩된 문자열: SGVsbG8sIFdvcmxkIQ==
이미지 파일 인코딩
base64_encode()
는 주로 이미지나 파일과 같은 바이너리 데이터를 인코딩하는 데 사용됩니다. 이 함수는 파일 자체를 직접 인자로 받지 않고 문자열 데이터 타입을 받으므로, file_get_contents()
함수를 사용해 파일의 바이너리 내용을 먼저 읽어와야 합니다.
부연설명
file_get_contents()
함수는 주어진 파일을 문자열로 읽어 반환합니다.
// file_get_contents()로 이미지 파일의 이진 데이터를 문자열로 읽어옵니다.
$image_data = file_get_contents('my_image.png');
// base64_encode() 함수로 문자열 타입의 이진 데이터를 MIME Base64 문자열로 인코딩합니다.
$encoded_image = base64_encode($image_data);
echo $encoded_image;
데이터 URI로 HTML에 삽입
base64_encode()
를 사용해서 이미지를 MIME base64로 인코딩하면 data:
스킴이 접두어로 붙은 URL를 사용해서 HTML에 인라인으로 삽입할 수 있습니다.
// 예제 이미지 파일 (my_image.png)의 경로를 지정합니다.
$file_path = 'my_image.png';
// 예제 이미지 파일 (my_image.png)의 MIME 타입을 가져옵니다.
$mime_type = mime_content_type($file_path);
// file_get_contents()로 파일의 이진 데이터를 문자열로 읽어옵니다.
$image_data = file_get_contents($file_path);
// base64_encode() 함수로 이진 데이터를 MIME Base64 문자열로 인코딩합니다.
$encoded_image = base64_encode($image_data);
// 인코딩된 데이터를 HTML img 태그에 삽입하여 브라우저에 출력합니다.
echo '<img src="data:' . $mime_type ';base64,' . $encoded_image . '" alt="Base64 encoded image">';
코드 부연설명
mime_content_type()
함수는 주어진 파일의 MIME 타입을 반환합니다.
데이터 URI의 구문은 다음과 같습니다.
data:[<mediatype>][;base64],<data>
data:
: Data URI 스키마의 시작을 알리는 부분입니다. 모든 Data URI는 이 접두사로 시작합니다.<mediatype>
: MIME 타입을 지정합니다.base64
: 데이터가 Base64 인코딩되어 있음을 나타냅니다. 이 부분은 브라우저에게 쉼표(,
) 뒤에 오는 문자열을 Base64로 디코딩해야 한다고 알려줍니다.