速報

X.Orgのクライアントライブラリーで17件を修正!Linux端末と画像処理の利用範囲を点検

CATEGORY

【PHP】【scandir】ディレクトリ内のファイル・ディレクトリ一覧を取得する

※本ページのリンクにはプロモーションが含まれています。

【PHP】【scandir】ディレクトリ内のファイル・ディレクトリ一覧を取得する

目次

本記事では、PHPのscandirを使って指定したディレクトリ内に存在するファイル・ディレクトリ一覧を取得する方法をご紹介しています。

PHPのscandirでディレクトリ内のファイル・ディレクトリ一覧を取得したいんだけど、良い方法ないかな?

上記の疑問にお答えします。

では、解説していきます。

スポンサーリンク

scandirとは

scandirは、指定したサーバーパスのファイル・ディレクトリ一覧を取得する関数です。関数を実行すると、ファイル・ディレクトリ一覧の配列を返します。

構文

<?php

scandir($directory, $sorting_order, $context);

パラメータ

directory 対象のディレクトリのサーバーパスを指定します。
sorting_order取得した一覧のソート順を指定します。デフォルトはアルファべと昇順、1を指定するとアルファベット降順になります。
contextcontextパラメータについてはこちらをご参照ください。

参考:https://www.php.net/manual/ja/function.scandir.php

scandirで指定したディレクトリ内のファイル・ディレクトリ一覧を取得する

scandirで指定したディレクトリ内のファイル・ディレクトリ一覧を取得してみます。ディレクトリの構成は下記の通りです。index.phpでscandirを実行し、結果を確認してみます。

ディレクトリ構成

dir/
 ├ index.php →実行ファイル
 └ subdir/ →ディレクトリ
     └ test4.php →ファイル
 ├ test1.php →ファイル
 ├ test2.php →ファイル
 ├ test3.php →ファイル

PHP

<?php

$dir = __DIR__;
$files = scandir($dir);

var_dump($files);

実行結果

array(7) {
  [0]=>
 string(1) "."
  [1]=> string(2) ".."
  [2]=> string(9) "index.php"
  [3]=> string(4) "test"
  [4]=> string(9) "test1.php"
  [5]=> string(9) "test2.php"
  [6]=> string(9) "test3.php"
}

実行結果を確認すると、ディレクトリ内に存在するファイト・ディレクトリの配列を取得することができています。subdir(サブディレクトリ)の内容は取得できていないため、サブディレクトリの内容も取得する場合は追加で処理を組む必要があります。is_dir関数でディレクトリを判定することができるため、対象がディレクトリであれば再度scandirを実行するという処理で対応できるかと思います。

スポンサーリンク

最後に

PHPでは、scandirを使って簡単に指定したディレクトリ内のファイル・ディレクトリ一覧を取得することができます。他の組み込み関数と組み合わせることでディレクトリを辿って深い階層のディレクトリに存在するファイル一覧まで取得することができます。自身のWebサイト・アプリの全体のディレクトリ構成を取得するスクリプトを作ってみて、ディレクトリ関連の組み込み関数のマスターを目指しすのも良いかもしれませんね!

以上、PHPのscandirでディレクトリ内のファイル・ディレクトリ一覧を取得する方法のご紹介でした!

この記事を書いた人

Ryohei

Webエンジニア / アプリ開発者 / 技術ブログ運営者

福岡のWeb制作会社に勤務するWebエンジニアです。10年以上にわたりWeb制作・開発に携わり、これまでに100以上のWordPressサイトの構築・保守を担当してきました。Webサイト制作に加え、アプリ開発やAIを活用した開発にも取り組み、近年はWebセキュリティにも注力しています。

2015年から技術メディア「Into the Program」を運営し、実務や開発で得た知識をもとに、プログラミングの実装方法やWebサイトの運用・セキュリティ情報を発信しています。

主な分野
WordPress / PHP / JavaScript / アプリ開発 / Webサイトの運用・セキュリティ対策
資格・試験合格
情報セキュリティマネジメント試験
基本情報技術者試験
AWS認定ソリューションアーキテクト アソシエイト
メディア運営
2015年〜

記事の作成・更新について

セキュリティ記事は、ベンダーの公式アドバイザリやCVE・JVNなどの一次情報を参照し、出典と情報確認日を記載します。実環境での検証を行った場合は、その環境と確認範囲を明示します。重要な追加情報や誤りを把握した場合は、内容を確認して追記・訂正します。

スポンサーリンク

関連する記事

おすすめの書籍