base64_decode

関数の概要

PHPの base64_decode 関数は、Base64エンコードされた文字列を元のバイナリデータやテキストにデコード(復号)するための関数です。Base64は主にバイナリデータをテキスト形式に変換するために使われますが、その逆操作が base64_decode で行われます。これにより、HTTP通信やメール送信時に利用されたエンコードデータの復元が可能です。

パラメータの説明

  • string $string:デコードしたいBase64形式の文字列を指定します。
  • bool $strict(省略可能):厳密モードでデコードを行うかどうかを設定します。
    デフォルトは false で、不正な文字を無視してデコードします。
    true にすると無効なBase64文字がある場合に false を返します。

戻り値

成功するとデコードした文字列(バイナリデータ)を返します。
失敗した場合や不正な文字が検出された場合(strict = true 時)は false を返します。

使用例

基本的な使い方

<?php
$encoded = 'SGVsbG8sIFdvcmxkIQ==';
$decoded = base64_decode($encoded);
echo $decoded;  // 出力: Hello, World!
?>

この例では、Base64でエンコードされた「Hello, World!」をデコードし、元の文字列を表示しています。

画像データのBase64デコード

<?php
$base64Image = 'iVBORw0KGgoAAAANSUhEUgAAAAUA...'; // Base64形式の画像データ
$imageData = base64_decode($base64Image);
file_put_contents('image.png', $imageData);
?>

Base64でエンコードされた画像データをバイナリに戻し、画像ファイルとして保存しています。

strictパラメータの利用例

<?php
$invalidBase64 = 'SGVsbG8!*'; // 末尾に無効文字を含む
$result1 = base64_decode($invalidBase64);
var_dump($result1);  // string型でデコード結果を出力(無効文字は無視)

$result2 = base64_decode($invalidBase64, true);
var_dump($result2);  // bool(false)  無効文字があるため strictモードは失敗
?>

デフォルトでは無効な文字は無視されますが、trueを指定すると無効な文字がある場合に失敗します。

関連する関数

  • base64_encode:文字列をBase64形式にエンコードします。
  • bin2hex:バイナリデータを16進数表現に変換します。
  • urlencode:URLで安全に使えるように文字列をエンコードします。

まとめ

base64_decode は、Base64エンコードされたデータを元の文字列やバイナリデータに復元する便利な関数です。特にWeb開発やAPI連携、画像やファイルデータの処理でよく使われます。
デコード時の無効文字の扱いを制御できる strict パラメータも覚えておくと安心です。正しく使うことで安全かつ確実にBase64データを復元できます。