PHP 指定されたディレクトリ内のすべてのファイル(サブディレクトリを含む)を取得します
テスト環境はLinuxです。Windowsを使用したい場合は、$new_dirのディレクトリパスの検索方法を修正してください
<?<span>php function get_file_list($dir) { </span><span> $file_list </span>=<span> array(); $file_dir_list </span>=<span> array(); $dir_list </span>= scandir($dir); <span>//</span><span>查找目录 </span><span>foreach</span> ($dir_list <span>as</span><span> $r) { </span><span>if</span> ($r == <span>'</span><span>.</span><span>'</span> || $r == <span>'</span><span>..</span><span>'</span><span>) { </span><span>continue</span><span>; } $new_dir </span>= $dir . <span>'</span><span>/</span><span>'</span><span> . $r; </span><span>if</span><span> (is_dir($new_dir)) {</span><span> $file_dir </span>=<span> get_file_list($new_dir); $file_dir_list </span>=<span> array_merge($file_dir_list, $file_dir); } </span><span>else</span><span> { $file_list[] </span>=<span> $new_dir; } } </span><span>return</span><span> array_merge($file_list, $file_dir_list); } $file_list </span>= get_file_list(<span>'</span><span>.</span><span>'</span><span>); print_r($file_list);</span>
scandirの定義と使い方
scandir() この関数は、指定されたパス内のファイルとディレクトリを含む配列を返します。
成功した場合は配列を返し、失敗した場合は false を返します。 directory がディレクトリではない場合、ブール値の false を返し、E_WARNING レベルのエラーを生成します。
構文
scandir(directory,sort,context)
パラメータ | 説明 |
---|---|
ディレクトリ | 必須。スキャンするディレクトリを指定します。 |
並べ替え | はオプションです。並べ替えの順序を指定します。デフォルトは 0 (昇順) です。 1の場合は降順。 |
コンテキスト | オプション。ディレクトリハンドルの環境を指定します。 context は、ディレクトリ ストリームの動作を変更するオプションのセットです。 |
例
<?<span>php print_r(scandir(</span><span>"</span><span>images</span><span>"</span><span>)); </span>?>
出力:
<span>Array ( [</span><span>0</span>] =><span> . [</span><span>1</span>] =><span> .. [</span><span>2</span>] =><span> dog.jpg [</span><span>3</span>] =><span> house.jpg [</span><span>4</span>] =><span> logo.gif )</span>
上記では、指定したディレクトリ内のすべてのファイル (サブディレクトリを含む) を取得する PHP について、内容の側面も含めて紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。