こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、11年目エンジニアです。
この記事では、 PHPで指定した文字列をエンコード方式のbase64でデコードすることができるbase64_decode関数について
- base64_decode関数とは
- base64_decode関数を使ったサンプルプログラム
と、丁寧に解説していきます。
前提条件:実行環境について
実行環境は以下の通りです。
OS | Windows10 |
---|---|
PHPのバージョン | 8.0.3 |
XAMPPのバージョン | 8.0.3 |
PHPを動かすためにXAMPPを使っています。
XAMPPのインストールは、下の記事をご参考ください。
base64_decode関数とは
base64_decode関数とは、引数に指定された文字列をbase64方式でデコードした文字列を返す関数です。
base64_decode関数は
- オプション設定なし
- オプション設定あり
の合計2パターンの使い方があります。
それぞれ解説します。
パターン1:オプション設定なし
オプションを設定しない場合は、単純に引数に指定された文字列をbase64方式でデコードした文字列で返します。
使い方サンプルは、以下になります。
1 2 |
$sample = "44OG44K544OI"; $result = base64_decode($sample); |
上記の例だと、変数resultには「44OG44K544OI」をデコードした「テスト」という文字列が返されます。
注意点として、デコードしたい文字列がbase64方式の範囲外の文字が含まれている場合はその部分は削除されてデコードされる、という点です。
base64方式に含まれる文字列は
- A~Z
- a~z
- 0~9
- +, /
の64文字が含まれています。
なのでたとえば
1 2 |
$sample = "44OG44K544OIあいうえお"; $result = base64_decode($sample); |
というようにデコードしたい文字列にひらがなが入っていた場合は、「あいうえお」の部分は削除されてデコードされます。
結果、変数resultには「テスト」という文字列が返されます。
パターン2:オプション設定あり
オプションを設定する場合は、デコードしたい文字列がbase64方式の範囲外の文字が含まれているかをチェックします。
範囲内であればデコードした文字列を、範囲外の文字列があればfalseを返します。
base64_decode関数は
- 第一引数:デコードしたい文字列
- 第二引数:base64方式の範囲外の文字が含まれているかをboolで指定
を指定して使います。
第二引数にtrueを指定したとき、範囲外かどうかのチェックをします。
使い方サンプルは、以下になります。
1 2 |
$sample = "44OG44K544OIテスト"; $result = base64_decode($sample , true); |
上記の例だと、base64方式の範囲外の文字が含まれているため変数resultにはfalseが返されます。
では、次の章で実際に使ってみます。
base64_decode関数を解説するプログラムの概要
base64_decode関数を解説するプログラムでは、base64方式でエンコードした文字列を2つ用意します。
(1つはカタカナを最後につけます。)
2つの文字列それぞれに対して
- オプション設定なし
- オプション設定あり
の2パターンでbase64_decode関数を使ってデコードして、結果を表示させます。
PHPサンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
<?php print('■base64_decode関数サンプル<br />'); $apple = "リンゴ"; $orange_error = "オレンジ"; $encode_apple = base64_encode($apple); $encode_orange_error = base64_encode($orange_error)."エラー"; print('base64方式でエンコードした文字列<br >'); print($apple.'=>'.$encode_apple.'<br >'); print($orange_error.'=>'.$encode_orange_error.'<br ><br >'); print('・パターン1:オプション設定なし<br >'); $decode_apple_no_option = base64_decode($encode_apple); $decode_orange_error_no_option = base64_decode($encode_orange_error); print($encode_apple.'=>'.$decode_apple_no_option.'<br >'); print($encode_orange_error.'=>'.$decode_orange_error_no_option.'<br ><br >'); print('・パターン2:オプション設定あり<br >'); $decode_apple_option = base64_decode($encode_apple, true); $decode_orange_error_option = base64_decode($encode_orange_error, true); print($encode_apple.'=>'.$decode_apple_option.'<br >'); print($encode_orange_error.'=>'.$decode_orange_error_option.'<br >'); print('decode_orange_error_optionのbool値を表示=>'); var_export($decode_orange_error_option); ?> |
base64_encode関数は、文字列をbase64でエンコードできる関数です。
詳しい説明は、こちらの記事をご参考ください。
実行結果
XAMPPを起動して、【http://localhost/base64decodesample.php】のURLにアクセスします。
XAMPPでPHPの動かし方については、こちらの記事をご参考ください。
パターン1はどちらもエンコードでき、パターン2はカタカナが入っている文字列はfalseが返されていることが確認できました。
まとめ:base64_decode関数を使ってみよう!
以上がbase64_decode関数についての解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント