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

时间:2015-03-24 11:35:33

标签: 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>";
    }
}
}
?>

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

有人可以就此问题提出建议吗?

提前致谢。

3 个答案:

答案 0 :(得分:3)

这应该适合你:

(这里我只使用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语句

答案 1 :(得分:2)

大声朗读并听取:

if ($file->isDir()) {

答案 2 :(得分:0)

检查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');