PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPでフォルダ内のすべての画像を取得する方法

PHPでは、glob関数を使うことで、特定のフォルダに保存されている画像ファイルを簡単に一括取得できます。この記事では、glob関数の基本的な使い方と、フォルダ内の画像を表示するサンプルコードを紹介します。

glob関数とは

glob関数は、指定したパターンに一致するファイルやディレクトリのパスを配列として返すPHPの組み込み関数です。ワイルドカード(*)を活用することで、特定の拡張子を持つファイルだけを効率的に抽出できます。

画像を取得して表示するサンプルコード

以下のコードでは、画像が保存されているフォルダへのパスを指定し、その中から拡張子が「.png」のファイルをすべて抽出しています。取得した画像はforeachループを使って順番に画面へ出力されます。

$dir_name = "path/to/image/folder/";
$images = glob($dir_name."*.png");
foreach($images as $image) {
    echo '<img src="'.$image.'" /><br />';
}

コードの解説

  • $dir_name: 画像が格納されているフォルダへのパスを指定します。末尾にスラッシュ(/)を忘れないようにしましょう。
  • glob($dir_name."*.png"): フォルダ内の「.png」拡張子を持つすべてのファイルパスを配列として返します。
  • foreachループ: 取得した配列を1件ずつ処理し、imgタグを生成してブラウザに画像を表示します。

他の拡張子にも対応させる方法

JPEG形式など、複数の画像形式をまとめて取得したい場合は、波括弧({})を使ったパターン指定が便利です。

$images = glob($dir_name."{*.png,*.jpg,*.jpeg,*.gif}", GLOB_BRACE);

GLOB_BRACEフラグを指定することで、複数の拡張子パターンに一致するファイルを一度に取得できます。

注意点

glob関数は、指定したフォルダ内に存在する各画像ファイルの完全なパスを返します。該当するファイルが1つも見つからなかった場合は空の配列が返されるため、必要に応じてempty()などでチェックすると安全です。また、GLOB_BRACEは一部のOS(Solarisなど)では動作しない場合がある点にも留意してください。

  1. Javaでフォルダ内のディレクトリ(フォルダ)のみを取得する方法

    Javaで特定のフォルダに含まれるファイルではなく、ディレクトリ(サブフォルダ)だけを取得したいケースはよくあります。本記事では、代表的な2つの方法——FileFilterインターフェースを使う方法と、NIOのFiles.walk()を使う方法——をサンプルコード付きで解説します。listFiles()メソッドとFileFilterの基本FileクラスのlistFiles()メソッドは、そのFileオブジェクトが表すパスに含まれるすべてのファイルおよびディレクトリの抽象パス名を、配列として返します。ここで活躍するのがFileFilterインターフェースです。FileFilterはパス名をフィル

  2. Matplotlibのプロットからすべての凡例を取得するにはどうすればよいですか?

    Matplotlibのプロットからすべての凡例(Legend)を取得するには、get_children()メソッドを使って軸が持つすべてのプロパティ(子要素)を取得し、それらを順番に反復処理します。各要素がLegendクラスのインスタンスであるかどうかを判定し、該当する場合はその凡例テキストを取り出すことができます。手順図のサイズを設定し、autolayoutを有効にしてサブプロット間や図の周囲の余白を自動調整します。numpyを使ってx軸用のデータポイントを作成します。図(figure)とサブプロット(axes)を作成します。plot()メソッドを使い、ラベルと色を変えてsin(x)とcos