PHPのgetimagesizeメソッドの使い方を現役エンジニアが解説【初心者向け】

初心者向けにPHPのgetimagesizeメソッドの使い方について解説しています。getimagesizeメソッドは、PHPで手軽に使うことが出来る画像関連の関数です。アップロードした画像の幅を変更したりして、小さくリサイズする場合などに使用することが出来ます。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

今回は、PHPのgetimagesizeメソッドの使い方について解説します。実際のコードをもとに解説していきますので、理解を深めていきましょう。

なお本記事は、TechAcademyのPHP/Laravel講座の内容をもとに紹介しています。

 

田島悠介

今回は、PHPに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

PHPのgetimagesizeメソッドの使い方について詳しく説明していくね!

大石ゆかり

お願いします!

 

PHPのgetimagesizeメソッドとは

PHPのgetimagesizeメソッドを利用することで、画像ファイルのサイズに関する情報を配列で取得することが可能です。具体的には、ファイルの高さと幅を表す文字列データを取得します。注意点として、画像ファイル以外のファイルを調べることも可能ですが、あくまで画像ファイルであるという前提が正しい状態での調査となります。

つまり、画像ファイルではないものをgetimagesizeで調べたとしても、意味のない配列を返すだけで、実際には画像ファイルのサイズ等の情報は調べることができないということが言えます。それは、getimagesize関数では、ファイルが画像ファイルかどうかを調べることができないことも意味しています。

 

getimagesizeメソッドの使い方

基本文法

getimagesize (ファイル名, ファイル情報)

 

解説

ファイル名には、画像ファイルのファイル名を指定します。ファイル名は必須です。ファイル情報には、拡張情報を代入したい変数を指定します。

変数とは、値を入れる箱のようなものです。ファイル情報は必須ではありません。

 

[PR] PHPのプログラミングで挫折しない学習方法を動画で公開中

実際に書いてみよう

ソースコード

<?php
$file = "http://techacademy.jp/tech.png";
print_r( getimagesize($file) );
?>

 

表示結果

Array
(
  [0] => 200
  [1] => 100
  [2] => 3
  [3] => width="200" height="100"
)

 

解説

<?phpでは、PHPプログラムを開始するということを宣言しています。

$file = “http://techacademy.jp/tech.png”;では、tech.pngというファイルをhttp://techacademy.jp/tech.pngから代入しています。

getimagesize($file)では、tech.pngというファイルのサイズを調べています。

print_rを利用することで、調べたファイルに関する情報を表示することが可能です。

表示結果で、

0は、画像の幅を意味します。今回は200pxです。

1は、画像の高さを意味します。今回は100pxです。

2は、画像の種類を示す数字で、1はgif、2はjpg、3はpngを意味します。

3は、imgタグ内で利用できるテキストです。今回は、幅と高さを指定する際のHTMLです。

?>の行は省略可能です。phpの処理が終了することを意味しています。

 

今回は、PHPのgetimagesizeメソッドの使い方について解説しました。

 

筆者プロフィール

中本賢吾(なかもとけんご)

アジマッチ有限会社 代表取締役社長

開発実績:PHPフレームワークを利用した会員制SNS・ネットショップ構築、AWSや専用サーバー下でLinuxを使用したセキュアな環境構築、人工知能を利用したシステム開発、店舗検索スマホアプリ開発など。

地域の職業プログラマー育成活動では、小学生がオリジナルAndroidアプリをGooglePlayでリリース、NHK Whyプログラミング入賞、全国Programing Festival入賞。ゲームで遊ぶより作ろうぜ!を合言葉に、小学生でも起業できる技術力を育成可能で有ることを証明し続けている。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

オンラインのプログラミングスクールTechAcademyではオンラインブートキャンプPHP/Laravelコースを提供しています。

PHPやフレームワークのLaravelを使ってWebアプリケーションの開発を学ぶことができます。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間で習得することが可能です。

また、現役エンジニアから学べる無料のプログラミング体験会も実施しているので、ぜひ参加してみてください。