スライドショー

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

無料でSEからWebエンジニアへ転職しませんか?



侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

  • システムエンジニアという職業だけどコードが書けない
  • 事務作業が多くスキルがないため将来が不安
  • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

まずは無料体験レッスンを予約する

書いた人

つぶらや

つぶらや

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

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説