ディレクトリのファイルを一覧で取得する方法
指定したディレクトリ内にある、全てのファイル名やファイルパスを取得します。まとめて読み込みたい場合などに便利です。
サンプルコード
$dirに対象のディレクトリのパスを指定して下さい。
そのディレクトリ内のみを取得
そのディレクトリにあるファイルのみを取得します。ディレクトリ内のディレクトリは無視されます。
<?php
// ディレクトリのパス
$dir = "/var/www/" ;
if( is_dir( $dir ) && $handle = opendir( $dir ) ) {
while( ($file = readdir($handle)) !== false ) {
if( filetype( $path = $dir . $file ) == "file" ) {
// $file: ファイル名
// $path: ファイルのパス
}
}
}
再帰的に取得
そのディレクトリ内だけではなく、深い階層にあるファイルも再帰的に取得します。
<?php
// ディレクトリのパス
$dir = "/var/www/" ;
$check_dirs = [ $dir ] ;
$file_paths = [] ;
while( $check_dirs ) {
$dir_path = $check_dirs[0] ;
if( is_dir ( $dir_path ) && $handle = opendir ( $dir_path ) ) {
while( ( $file = readdir ( $handle ) ) !== false ) {
if( in_array ( $file, [ ".", ".." ] ) !== false ) continue ;
$path = rtrim ( $dir_path, "/" ) . "/" . $file ;
if ( filetype ( $path ) === "dir" ) {
$check_dirs[] = $path ;
} else {
// $file: ファイル名
// $path: ファイルのパス
}
}
}
array_shift( $check_dirs ) ;
}
デモ
そのディレクトリ内のみを取得
<?php
// ディレクトリのパス
$dir = "/var/www/icons/" ;
if( is_dir( $dir ) && $handle = opendir( $dir ) ) {
while( ($file = readdir($handle)) !== false ) {
if( filetype( $path = $dir . $file ) == "file" ) {
// $file: ファイル名
// $path: ファイルのパス
echo $file . " (" . $path . ")" . "\n" ;
}
}
}
patch.gif (/var/www/icons/patch.gif) comp.blue.gif (/var/www/icons/comp.blue.gif) binary.gif (/var/www/icons/binary.gif) odf6ots.png (/var/www/icons/odf6ots.png) broken.gif (/var/www/icons/broken.gif) comp.gray.png (/var/www/icons/comp.gray.png)
再帰的に取得
/var/www/icons/だけでなく、深い階層にある/var/www/icons/small/のファイルも取得しています。
<?php
// ディレクトリのパス
$dir = "/var/www/icons/" ;
$check_dirs = [ $dir ] ;
$file_paths = [] ;
while( $check_dirs ) {
$dir_path = $check_dirs[0] ;
if( is_dir ( $dir_path ) && $handle = opendir ( $dir_path ) ) {
while( ( $file = readdir ( $handle ) ) !== false ) {
if( in_array ( $file, [ ".", ".." ] ) !== false ) continue ;
$path = rtrim ( $dir_path, "/" ) . "/" . $file ;
if ( filetype ( $path ) === "dir" ) {
$check_dirs[] = $path ;
} else {
// $file: ファイル名
// $path: ファイルのパス
echo $file . " (" . $path . ")" . "\n" ;
}
}
}
array_shift( $check_dirs ) ;
}
patch.gif (/var/www/icons/patch.gif) comp.blue.gif (/var/www/icons/comp.blue.gif) binary.gif (/var/www/icons/binary.gif) odf6ots.png (/var/www/icons/odf6ots.png) broken.gif (/var/www/icons/broken.gif) comp.gray.png (/var/www/icons/comp.gray.png) patch.gif (/var/www/icons/small/patch.gif) binary.gif (/var/www/icons/small/binary.gif) generic2.gif (/var/www/icons/small/generic2.gif)
関連記事
- ipアドレスを取得する方法
- PHPで訪問者のipアドレスを取得するには、$_SERVER["REMOTE_ADDR"]を参照します。
- 四捨五入、切り捨て、切り上げをする方法
- 切り捨てはfloor()、切り上げはceil()、四捨五入はround()の関数を利用します。
- 配列を数値順に並び替える方法
- 配列を数値順に並び替えるには、sort()やarray_multisort()を利用しましょう。
- 配列を時間順に並び替える方法
- 配列を時間順に並び替えるには、array_multisort()とarray_map()とstrtotime()と組み合わせましょう。
- 配列を文字数順に並び替える方法
- 配列を文字数順に並び替えるには、array_multisort()とarray_map()とstrlen()と組み合わせましょう。