정의 및 사용 방법
- PHP 버전
- 4+
base64_decode()
함수는 MIME Base64로 인코딩된 문자열을 원본 데이터로 디코딩한 문자열로 반환합니다.
주로 이메일, HTTP 헤더, JSON 등 텍스트 기반 환경에서 MIME Base64로 인코딩되어 전송된 문자열을 원본 데이터 문자열로 복원할 때 사용됩니다.
특징
- MIME base64로 인코딩된 문자열을 인코딩 이전의 원본 데이터로 디코딩한 문자열로 반환합니다.
- 디코딩에 실패 시
false
를 반환합니다. 실패는 주로 입력 데이터가 Base64 형식 규격을 만족하지 않을 때 발생합니다(예: 길이 불일치, 잘못된 패딩 등).
구문
base64_decode(string $string, bool $strict = false): string|false
매개변수
$string |
디코딩할 Base64로 인코딩된 문자열 |
---|---|
$strict |
옵션.
base64_decode() 함수가 엄격 모드로 동작할지 여부를 제어합니다.
|
반환 값
- 성공 시: 디코된 데이터를 문자열로 반환합니다.
- 디코딩에 성공하면, 함수는 인코딩되기 전의 원본 바이너리 데이터를 담고 있는 문자열을 반환합니다. 이 데이터는 사람이 읽을 수 있는 텍스트일 수도 있지만, 이미지나 파일의 내용과 같이 사람이 이해할 수 없는 문자열 타입의이진 데이터일 수 있습니다.
- 실패 시:
false
를 반환합니다. - 실패 원인은 주로 길이 불일치, 잘못된 패딩, 유효하지 않은 문자 등 구조적 오류 때문입니다.
- 실패 시:
예제
아래 예제를 통해 각 경우의 base64_decode()
함수 사용법을 알아보세요.
간단한 텍스트 디코딩
base64_decode()
함수는 MIME base64로 인코딩된 문자열을 받아 디코딩된 문자열을 반환합니다. 다음 예제는 base64_encode("Hello, World!")
의 결과인 SGVsbG8sIFdvcmxkIQ==
를 디코딩하는 과정을 보여줍니다.
$encoded_str = "SGVsbG8sIFdvcmxkIQ=="; // MIME Base64로 인코딩된 문자열
$decoded_str = base64_decode($encoded_str);
echo $decoded_str;
// 출력: Hello, World!
인코딩된 이미지 파일을 복원하기
MIME Base64로 인코딩되어 전송된 이미지 파일과 같은 바이너리 데이터를 base64_decode()
함수를 사용해서 디코딩하면 원본 파일로 복원할 수 있습니다.
// MIME Base64로 인코딩된 이미지 문자열 읽기
$encoded_image = file_get_contents('encoded_image.txt');
// 원본 이미지 데이터로 디코딩
$image_data = base64_decode($encoded_image);
// 파일로 저장
file_put_contents('decoded_image.png', $image_data);
부연설명
file_put_contents()
함수는 주어진 파일명으로 파일을 만들어 파일에 데이터를 씁니다.
$strict
옵션 사용
이 예제는 $strict
옵션의 차이를 정확히 보여줍니다.
$invalid_base64 = "SGVsbG8s@@IFdvcmxkIQ==";
echo "--- strict=false (기본값) --- \n";
// 유효하지 않은 문자(@)를 무시하고 디코딩을 진행합니다.
$result_false = base64_decode($invalid_base64);
var_dump($result_false);
// 출력: string(13) "Hello, World!"
echo "\n--- strict=true --- \n";
// 유효하지 않은 문자(@)를 발견하면 즉시 실패하고 false를 반환합니다.
$result_true = base64_decode($invalid_base64, true);
var_dump($result_true);
// 출력: bool(false)