我的问题是一个提取目录内容的php页面
正如您在下面的代码段中看到的那样,路径是通过GET传递的
我第一次调用页面时会正确读取所有内容,但如果您只是读取包含子目录的文件夹,则会将其识别为文件。
你有什么建议或解决方案吗?
感谢
<?php
$path = $_GET['dir'];
function createDir($path) {
if ($handle = opendir($path)) {
echo "<ul>";
while (false !== ($file = readdir($handle))) {
if (is_dir($path . $file) && $file != '.' && $file != '..')
printSubDir($file, $path, $queue);
else if ($file != '.' && $file != '..')
$queue[] = $file;
}
printQueue($queue, $path);
echo "</ul>";
}
}
function printQueue($queue, $path) {
foreach ($queue as $file) {
printFile($file, $path);
}
}
function printFile($file, $path) {
echo "<li>";
// print a file
echo "</li>";
}
function printSubDir($dir, $path) {
echo "<li>";
// print a directory
echo "</li>";
}
createDir($path);
?>
答案 0 :(得分:3)
您可以使用DirectoryIterator轻松实现此目标:
$oIterator = new DirectoryIterator(dirname(__FILE__));
foreach ($oIterator as $oFileInfo) {
// Either . or ..
if ($oFileinfo->isDot()) {
}
// A directory
if ($oFileInfo->isDir()) {
}
}
答案 1 :(得分:1)
您可以使用is_dir()
或is_file()
来检查这一点,而不是使用递归函数来读取它们。如果只是标记为目录,您可以使用支票。