2017-01-03 2 views
3

scandir()を使用してディレクトリファイルをチェックすると、/ dir1/dir2/....のようなルートから正しく動作します(dir1は自分の.phpルートにそのフォルダをファイル)is_dirとis_fileがルートからのパスで動作していません

が、それは誤った結果

私はこれをどのように修正することができますを出力同じパスにis_dirとis_fileを使用しているとき?

+2

そのファイルのアクセス許可はどうですか? – Thamilan

答えて

0

だけPHPSを見ては、より速く、より詳細な単一の機能よりもDirectoryIteratorオブジェクトを、所有していこの

function getDirContents($dir) { 
    $handle = opendir($dir); 
    if (!$handle) return array(); 
    $contents = array(); 
    while $entry = readdir($handle)) { 
     if ($entry=='.' || $entry=='..') continue; 

     $entry = $dir.DIRECTORY_SEPARATOR.$entry; 
     if (is_file($entry)) { 
      $contents[] = $entry; 
     } else if (is_dir($entry)) { 
      $contents = array_merge($contents, getDirContents($entry)); 
     } 
    } 
    closedir($handle); 
    return $contents; 
} 

$directoryPath = 'Path to folder'; 
$getDirContents = getDirContents($directoryPath); 
echo "<pre>"; 
print_r(getDirContents); 
echo "</pre>"; 
+0

OPは何をしているのかわからずに答えを試してみるべきですか? _良い説明_は__ある説明_ – Thamilan

0

を試してみてください。

$dir = new DirectoryIterator(dirname(__FILE__)); 
foreach ($dir as $fileinfo) { 
    if (!$fileinfo->isDot()) { 
     var_dump($fileinfo->getFilename()); 
    } 
} 

このコードは、ドキュメントから直接取り出しています。現在実行中のファイルのカレントディレクトリを取り出し、それを繰り返します。現在の$ fileinfoがドットでない限り、このディレクトリ内のファイルとサブディレクトリのファイル名をダンプします。

関連する問題