【初心者向け】PHPで画像を表示する10のステップ

PHPで画像を表示する方法を学ぶ初心者PHP
この記事は約6分で読めます。

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればサンプルコードを活用して機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

この記事を読むことで、PHPで画像を表示する方法を学び、実際にコードを書くことができるようになります。

初心者でも理解できるように、基本的な概念から応用例まで、詳しく解説していきます。

●PHPとは

PHPは、Webサイトの動的な要素を制御するためのプログラミング言語です。

HTMLだけでは静的なページしか作れませんが、PHPを使うとデータベースの情報を取得したり、ユーザーからの入力を処理したりすることができます。

今回は、そのPHPを使って画像を表示する方法について学んでいきましょう。

●画像表示の基本

Webページに画像を表示するためには、HTMLのimgタグを使用します。

src属性に画像ファイルへのパスを指定することで、その画像が表示されます。

しかし、PHPを使うと、画像のパスを動的に変更したり、条件によって表示する画像を変えたりすることが可能になります。

●PHPでの画像表示の方法

それでは、PHPを使って画像を表示する具体的な方法について見ていきましょう。

○サンプルコード1:基本的な画像表示

このコードでは、まず$image_pathという変数に表示したい画像のパスを指定しています。

次に、file_exists関数を使ってそのパスのファイルが存在するか確認しています。

ファイルが存在すれば、imgタグをecho関数で出力し、画像を表示しています。

<?php
$image_path = 'images/sample.jpg';
if (file_exists($image_path)) {
    echo '<img src="' . $image_path . '" alt="サンプル画像">';
}
?>

○サンプルコード2:条件付き画像表示

このコードでは、$conditionという変数の値によって表示する画像を変えています。

$conditionがtrueならばsample1.jpgを、falseならばsample2.jpgを表示します。

このように、PHPを使うと動的に画像を切り替えることができます。

<?php
$image_path1 = 'images/sample1.jpg';
$image_path2 = 'images/sample2.jpg';
$condition = true; // ここを変更して条件を制御
if ($condition) {
    echo '<img src="' . $image_path1 . '" alt="サンプル画像1">';
} else {
    echo '<img src="' . $image_path2 . '" alt="サンプル画像2">';
}
?>

●画像表示の応用例

PHPで画像を表示する方法は、基本的なものから応用的なものまでさまざまです。

ここでは、データベースから画像を取得する方法と、画像ギャラリーを作成する方法について解説します。

○サンプルコード3:データベースからの画像表示

このコードでは、PDOを使ってMySQLデータベースに接続し、指定したIDの画像パスを取得しています。

取得した画像パスをimgタグのsrc属性に指定することで、データベースに保存された画像を表示しています。

<?php
$db = new PDO('mysql:host=localhost;dbname=testdb;charset=utf8', 'username', 'password');
$sql = "SELECT image_path FROM images WHERE id = :id";
$stmt = $db->prepare($sql);
$stmt->execute([':id' => 1]);
$image_path = $stmt->fetchColumn();
if ($image_path !== false) {
    echo '<img src="' . $image_path . '" alt="データベースから取得した画像">';
}
?>

○サンプルコード4:画像ギャラリーの作成

このコードでは、glob関数を使って指定したディレクトリ内の画像ファイルをすべて取得し、それぞれをimgタグで出力しています。

これにより、ディレクトリ内のすべての画像を一覧表示する画像ギャラリーを作成できます。

<?php
$images = glob('images/*.{jpg,jpeg,png,gif}', GLOB_BRACE);
foreach ($images as $image) {
    echo '<img src="' . $image . '" alt="画像ギャラリー">';
}
?>

●注意点と対処法

PHPで画像を表示する際には、いくつかの注意点があります。

まず、画像ファイルが存在しない場合、imgタグは壊れた画像を表示します。

これを防ぐためには、file_exists関数を使って画像ファイルの存在を確認することが重要です。

また、大量の画像を表示する場合、ページの読み込み速度が遅くなる可能性があります。

これを解決するためには、画像のサイズを適切に調整したり、遅延読み込み(lazy loading)を使用したりすると良いでしょう。

●カスタマイズ方法

PHPのGDライブラリやImagickクラスを使用すると、画像のリサイズや回転など、さまざまなカスタマイズを行うことができます。

画像のリサイズと回転のサンプルコードを紹介します。

○サンプルコード5:画像のリサイズ

このコードでは、Imagickクラスを使用して画像をリサイズしています。

resizeImageメソッドに幅と高さを指定することで、画像のサイズを変更できます。

リサイズした画像はwriteImageメソッドで新しいファイルとして保存します。

<?php
$image = new Imagick('images/sample.jpg');
$image->resizeImage(500, 500, Imagick::FILTER_LANCZOS, 1);
$image->writeImage('images/sample_resized.jpg');
echo '<img src="images/sample_resized.jpg" alt="リサイズした画像">';
?>

○サンプルコード6:画像の回転

このコードでは、rotateImageメソッドを使用して画像を回転させています。

回転の角度を指定することで、画像を任意の角度で回転させることができます。

<?php
$image = new Imagick('images/sample.jpg');
$image->rotateImage(new ImagickPixel('#00000000'), 90);
$image->writeImage('images/sample_rotated.jpg');
echo '<img src="images/sample_rotated.jpg" alt="回転した画像">';
?>

まとめ

以上、PHPで画像を表示する方法について詳しく解説しました。

基本的な画像表示から、データベースからの画像表示、画像ギャラリーの作成、画像のリサイズや回転などのカスタマイズまで、さまざまな方法を学びました。

これらの知識を活用して、PHPで動的な画像表示を実現してみてください。