{category}

PHP - ディレクトリ操作

scandir()

スキャンディーアール(ファイルとI/O操作

意味 ディレクトリの内容を取得


scandir()とは?

scandir()関数は、指定されたディレクトリの中にあるファイルとサブディレクトリの名前を配列として取得します。この関数を使うと、フォルダの中身を簡単に一覧表示できます。

scandir()の具体的な使い方

ディレクトリ内容の表示

<?php
$dir_path = '/path/to/directory';
$files = scandir($dir_path);

echo "'{$dir_path}' の内容:\n";
foreach ($files as $file) {
    if ($file != '.' && $file != '..') {
        echo $file . "\n";
    }
}

👇出力結果

'/path/to/directory' の内容:
file1.txt
file2.php
subdirectory

この例では、指定されたディレクトリの内容を取得し、'.'(カレントディレクトリ)と'..'(親ディレクトリ)を除いて表示しています。これにより、ディレクトリ内の実際のファイルとサブディレクトリのみを一覧表示できます。

ファイルとディレクトリの区別

<?php
$dir_path = '/path/to/directory';
$items = scandir($dir_path);

echo "'{$dir_path}' の内容:\n";
foreach ($items as $item) {
    if ($item != '.' && $item != '..') {
        $full_path = $dir_path . '/' . $item;
        if (is_dir($full_path)) {
            echo "[DIR] {$item}\n";
        } else {
            echo "[FILE] {$item}\n";
        }
    }
}

👇出力結果

'/path/to/directory' の内容:
[FILE] file1.txt
[FILE] file2.php
[DIR] subdirectory

この例では、scandir()で取得した各項目に対して、is_dir()関数を使用してディレクトリかファイルかを判断しています。これにより、ディレクトリ内の項目をファイルとディレクトリに分類して表示できます。

scandir()に関するよくある質問

Q. scandirの返り値には何が含まれる?
A. scandirの返り値には、指定したディレクトリ内のすべてのファイルとサブディレクトリの名前が含まれます。これには現在のディレクトリを示す'.'と親ディレクトリを示す'..'も含まれます。
Q. 隠しファイルも取得される?
A. はい、scandirはデフォルトで隠しファイル(.で始まるファイル)も取得します。隠しファイルを除外したい場合は、結果の配列をフィルタリングする必要があります。
Q. ファイルとディレクトリの区別は?
A. scandirの返り値だけではファイルとディレクトリを区別できません。区別するには、各項目に対してis_dir()関数を使用して確認する必要があります。
Q. scandirでソートされた結果を得る?
A. scandirの第二引数にソートオプションを指定できます。SCANDIR_SORT_ASCENDING(デフォルト)で昇順、SCANDIR_SORT_DESCENDINGで降順、SCANDIR_SORT_NONEでソートなしを指定できます。

scandir()が学べる書籍の紹介

「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、PHPのscandir()やglob()、rmdir()、mkdir()、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。

よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。

1日5分の暗記でプログラミンが身に付く!プログラミング単語帳 公式ストアで発売中!

HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。


PHPを学べる「プログラミング単語帳」アプリ

プログラミング単語帳がアプリになりました!PHPはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。

収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。

いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。

2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!

2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!


関連するそのほかの単語

glob()

パターンに一致するファイル検索

種類: ディレクトリ操作

rmdir()

ディレクトリを削除する

種類: ディレクトリ操作

mkdir()

新しいディレクトリを作成

種類: ディレクトリ操作

array_map()

配列の各要素に関数を適用

種類: 配列関数

if

条件が真なら実行

種類: 条件分岐