我在一个文件夹中有数百万个文件,该文件夹中有几个子文件夹,每个子文件夹包含数千个文件。我能够使用 glob 函数列出给定文件夹的所有文件,但在这种情况下,由于它非常高,我收到了 php fatal error 。 allowed memory size exhausted 尝试分配更多内存 我知道这可以通过在该子文件夹中保留一个 php.ini 文件来完成,但我真正想要的是按降序列出所有 .txt 扩展名大小,这样较大的文件将位于顶部较小的文件将位于底部,但正如我所说,不可能列出数百万个文件,所以就像 mysql 一样,我可以按页面列出它们,或者当我单击下一步时,前 100 个文件将按降序排列页面将显示接下来的 100-200 个项目,但我不想使用数据库,如果没有其他方法我可以将所有这些详细信息存储在数据库中而不会导致服务器负载过重。
<?php
foreach (glob("files/*") as $filename) {
echo "uploads/" . "$filename" . "\n</br>";
}
?>
最佳答案
使用opendir而不是 glob();
尝试这样的事情:
function printdirs($path) {
if ($handle = opendir($path)) {
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != "..") {
if(is_dir($path.'/'.$entry))
printdirs($path.'/'.$entry);
else
echo $path . "/" . $entry . "\n</br>";
}
}
closedir($handle);
}}
printdirs('uploads');
关于php - 列出子文件夹问题的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15026692/