有人能告诉我如何读取目录并找到该目录中的文件和目录吗。
我尝试过使用is_dir()
函数检查目录,如下所示
$main = "path to the directory";//Directory which is having some files and one directory
readDir($main);
function readDir($main) {
$dirHandle = opendir($main);
while ($file = readdir($dirHandle)) {
if ($file != "." && $file != "..") {
if (is_dir($file)) {
//nothing is coming here
}
}
}
}
但它并没有检查目录。
感谢
PHP 5中最简单的方法是使用RecursiveDirectoryIterator
和RecursiveIteratorIterator
:
$dir = '/path/to/dir';
$directoryIterator = new RecursiveDirectoryIterator($dir);
$iterator = new RecursiveIteratorIterator($directoryIterator, RecursiveIteratorIterator::CHILD_FIRST);
foreach ($iterator as $path) {
if ($path->isDir()) {
// ...
}
}
您不需要自己递归,因为这些优秀的迭代器自己处理它。
有关这些强大迭代器的更多信息,请参阅链接的文档文章。
您必须使用子目录的完整路径:
if(is_dir($main.'/'.$file)) { ... }
使用scandir然后分析结果并消除"。"answers".."和is_file()
$le_map_to_search = $main;
$data_to_use_maps[] = array();
$data_to_use_maps = read_dir($le_map_to_search, 'dir');
$aantal_mappen = count($data_to_use_maps);
$counter_mappen = 1;
while($counter_mappen < $aantal_mappen){
echo $data_to_use_maps[$counter_mappen];
$counter_mappen++;
}
$data_to_use_files[] = array();
$data_to_use_files = read_dir($le_map_to_search, 'files');
$aantal_bestanden = count($data_to_use_files);
$counter_files = 1;
while($counter_files < $aantal_files){
echo $data_to_use_files [$counter_files ];
$counter_files ++;
}
查看此处的参考:
http://php.net/manual/en/function.scandir.php
试试这个$handle = opendir($directory); //Open the directory
while (false !== ($file = readdir($handle))) {
$filepath = $directory.DS.$file; //Get all files/directories in the directory
}