使用PHP获取目录中的文件夹和文件


get folders and files in a directory using PHP?

我正在尝试使用PHP获取目录中的所有文件和文件夹。

目前,我只能使用我的代码获取文件夹。

这是我当前的代码:

<?php 
$folders = "";
if(isset($_GET['dir'])) {
    $directory = $_GET['dir'];
$path = 'user_doc/'.$directory.''; // '.' for current
foreach (new DirectoryIterator($path) as $file) {
    if ($file->isDot()) continue;
    if ($file->isDir()) {
        //print $file->getFilename() . '<br />';
        //$folders .="<option>".$file->getFilename()."</option>";
        $folders .="<div style=' width:90%; padding:14px; border-bottom:solid 1px #CCC;'><i style='font-size:18px;' class='fa fa-folder-open'></i>&nbsp;
<a class='defaults'  href='folder.php?dir=".$file->getFilename()."'>".$file->getFilename()."</a></div>";
    }
}
}
?>

上面的代码由于某种原因忽略了文件,并且只显示文件夹。

有人能就这个问题提出建议吗?

提前谢谢。

这应该适用于您:

(这里我只使用glob()来获取所有文件和目录)

<?php
    if(isset($_GET['dir'])) {
        $directory = $_GET['dir'];
        $path = "user_doc/" . $directory;
        $folders = "";
        $files = glob($path . "/*");
        foreach($files as $file)
            $folders .= "<div style=' width:90%; padding:14px; border-bottom:solid 1px #CCC;'><i style='font-size:18px;' class='fa fa-folder-open'></i>&nbsp;<a class='defaults'  href='folder.php?dir=" . $file . "'>" . $file . "</a></div>";
    }
?>

你的代码没有按你想要的那样工作,因为这个:

if ($file->isDir()) {

如果是目录

,则只输入if语句

大声阅读并收听:

if ($file->isDir()) {

检查Shef给出的答案,以列出列出的所有文件夹和文件

function listFolderFiles($dir){
    $ffs = scandir($dir);
    echo '<ol>';
    foreach($ffs as $ff){
        if($ff != '.' && $ff != '..'){
            echo '<li>'.$ff;
            if(is_dir($dir.'/'.$ff)) listFolderFiles($dir.'/'.$ff);
            echo '</li>';
        }
    }
    echo '</ol>';
}
listFolderFiles('Main Dir');