列出PHP中的文件(仅文件)作为目录所有子目录的链接

列出PHP中的文件(仅文件)作为目录所有子目录的链接,php,Php,我有一个ftp站点,它承载多个文件。由于我们使用的下载软件的限制,每个文件都位于主目录(上载)中自己的文件夹中(每个文件必须具有唯一的文件路径,并且文件名必须是modpack.zip(不能是此名称的任何变体,必须具有确切的名称,因此每个版本都位于自己的子文件夹中) 我需要找到一种方法,列出表中主上传文件夹所有子目录中的所有文件,以及每个文件的大小。每个文件都必须有指向它的链接,并且不需要列出文件夹 到目前为止,我的出发点是: <div id="list"><table>

我有一个ftp站点,它承载多个文件。由于我们使用的下载软件的限制,每个文件都位于主目录(上载)中自己的文件夹中(每个文件必须具有唯一的文件路径,并且文件名必须是modpack.zip(不能是此名称的任何变体,必须具有确切的名称,因此每个版本都位于自己的子文件夹中)

我需要找到一种方法,列出表中主上传文件夹所有子目录中的所有文件,以及每个文件的大小。每个文件都必须有指向它的链接,并且不需要列出文件夹

到目前为止,我的出发点是:

<div id="list"><table>
<tr><td align="center">Modpack List</td></tr>
<?php

$dir_open = opendir('uploads/');

while(false !== ($filename = readdir($dir_open))){
    $bytes = filesize($_SERVER['DOCUMENT_ROOT']."/uploads/".$filename."");
    if($filename != "." && $filename != ".."){
        echo '<tr><td><a href="/uploads/'.$filename.'">'.$filename.'</a> - '.bytesToSize($bytes).'</td></tr>';
    }
}

closedir($dir_open);

?>
</table>
</div>

Modpack列表
我尝试过使用readdir()和scandir(),但两者都列出了我不想要的文件和子文件夹,而当前的设置只列出了/uploads下的所有文件和文件夹,并且不会列出子文件夹下的任何文件,除非我单击该文件夹,这会将我带到该文件夹的FTP页面

我在这里以及其他网站上看到过几种发布的解决方案,但都没有达到我的要求,我也不知道如何将文件夹作为链接省略,只列出文件。

尝试使用glob()



使用(或
!is_dir()
)。这只列出了每个子目录下的文件。感谢您的帮助!欢迎您的帮助…我喜欢glob()函数…我使用上述代码在我的图像库中列出图像
<?php
    foreach(glob('path-to/UPLOAD_FOLDER/*') as $subDirectory) {         
        foreach(glob($subDirectory'./*') as $file) {

            // do what you want with file here... example:
            $file_list .= $file.'<br>';                             
        }                               
    }
    echo $file_list;
?>