PHPでbase64の使い方を知ろう!サンプルコードで速攻理解

プログラムをする上で意識しないといけない事にデータ形式というものがあります。

例えば画像名の最後に「.png」などのような拡張子がついていますね。

これがデータの形式を表しています。

プログラムでは色々な形式のデータを扱います。
それを扱う際に、別のデータ形式にしたいという場合も発生します。

今回はそんな時に使用するbase64について以下の内容でお話しします。

base64について
【基本】encode(エンコード)・decode(デコード)を行う
【応用】imageのencode・decodeについて

分かりやすくbase64について解説しますのでぜひご覧になってください。

base64とは

base64は英数字(64種類)を使用するデータの形式を変更方法の一種です。

base64を用いてデータの形式を変更したり、元に戻したりする事ができます。

encode(エンコード)とは

encodeはデータの形式を変更する事です。

符号化と呼ばれる場合もあります。

一度encodeしたデータを元に戻す事もできます。

decode(デコード)とは

データの形式を変更(encode)した後、元に戻す事をdecodeと呼びます。

encodeとdecodeは対で使う場合も多いです。

あるタイミングでencodeしたデータを、また別のタイミングでdecodeというように使用します。

【実践・基本】encode・decodeを行ってみよう

それでは、実際にencode・とdecodeを行ってみましょう。

PHPでbase64方式でencodeする場合、base64_encodeを使用します。

<?php
$text = 'samurai';
echo base64_encode($text);
?>
結果
c2FtdXJhaQ==

変数に代入したデータとは全く違った出力結果になりました。

これがencodeです。

続いて、元に戻すdecodeを行います。

decodeの場合はbase64_decodeという関数を使用します。

<?php
$text = 'c2FtdXJhaQ==';
echo base64_decode($text);
?>
結果
samurai

元のテキストデータに戻りました。

今回はテキストデータを変換しましたが、他のデータも変換する事が出来ます。

次章ではimageデータを変換します。

【実践・応用】imageのencode・decodeを行ってみよう

前章ではテキストデータを変換しました。

しかし、変換したいデータがテキストデータ以外だった場合はどうでしょうか。

以下のコードを見てください。

<?php 
$img = base64_encode(file_get_contents('/home/samurai/test.jpg')); 
?>
<img src="data:image/jpg;base64,<?php echo $img; ?>">

1行目で/home/samurai/の配下にあるtest.jpgをencodeしました。

そして、2行目でimgタグを記述して表示させています。

ブラウザで実行すると、画像がブラウザに表示されていると思います。

しかし普通にimgタグで記述してもよい気もしませんか?

実はこのようにencodeされたimageデータはHTMLファイルの中に書き込まれています。

このようなimageデータをインラインイメージと呼びます。

そして、imgタグを呼び出すためにサーバーに画像を取りにいかないのでサーバーの負荷の軽減になる可能性があるのです。

続いて、元に戻して画像を保存する場合のサンプルコードを紹介します。

<?php 
$img = base64_encode(file_get_contents('/home/samurai/test.jpg'));
file_put_contents('/home/samurai/test2.jpg', base64_decode($img)); 
?>

1行目でencodeした画像データを、2行目でdecodeして/home/samurai/配下にtest2.jpgとして保存しました。

インラインイメージとして使う以外に、メールの添付ファイルにするためにテキストデータに変換するなどという場合もあるかもしれません。

まとめ

本日はPHPでbase64の方式でencode・decodeする方法をお伝えしました。

PHPの関数で変換する以外にonlineのツールでencode・decodeする方法もあります。

興味のある方はネットで検索してみてください。

それでは、また。

LINEで送る
Pocket

ITエンジニアへ転職したい方におすすめ

自分を評価してくれる企業に転職して年収を上げたい! 自分のスキルにあった独自案件を知りたい!
エンジニアは今もっとも注目されている職業の1つ。エンジニアになって年収を増やしたい方や、あなたのスキルに見合った企業へ転職したいエンジニアの方も多いですよね。

しかし、大手の転職媒体は扱う求人数が多くても、誰もが登録しているので競争率もかなり高くなっています。そのため、あなたの条件に見合った企業を見つけても転職するためには、相応の努力とスキルが必要となります。

こういった媒体では、未経験からエンジニアを目指す方やエンジニア歴2〜3年で転職を考えている方にとって、最適な転職環境とはいえません。

そこでオススメしたいのが、未経験者や若手エンジニア向けの独自案件を多く掲載している「侍ワークス」です。

侍ワークスは、独自案件を多く掲載しているだけでなく、

・応募から就業まで一貫したサポート

・就業後もアフターフォロー

といった経験の浅い方や初めてエンジニアを目指す方にも安心のフォロー体制が整っています。もちろん登録は完全無料!しかも案件を見るだけなら登録も不要です。

まずは、お気軽にどんな求人があるか見てみてください。あなたにピッタリの企業がきっと見つかりますよ! 侍ワークスの求人情報を見る

書いた人

つぶらや

つぶらや

独学PG&SE、東京在住30代女性。
誰でもプログラマーになれるがモットーで、わかりやすい記事を目指しています。