繁体   English   中英

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

[英]Listing out files in PHP (ONLY the files) as links from all subdirectories of a directory

我有一个托管多个文件的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>

我尝试使用readdir()和scandir(),但是都列出了我不想要的文件和子文件夹,并且当前设置仅列出了直接在/ uploads下的所有文件和文件夹,并且不会列出任何除非单击文件夹,否则子文件夹下的文件将被带到该文件夹​​的FTP页面。

我已经尝试过在这里以及其他站点上看到的几种已发布的解决方案,但是这些解决方案都没有满足我的需要,而且我不知道如何使它忽略文件夹作为链接,而只列出文件。

尝试使用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;
?>  

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM