微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

未显示目录中文件的 PHP 文件大小

如何解决未显示目录中文件的 PHP 文件大小

我想显示表中目录中每个文件文件大小。 但是无法显示文件的大小。

这是我使用的代码

$dir    = 'audio';

$files = array_slice(scandir('audio'),2);
sort($files,SORT_NATURAL | SORT_FLAG_CASE);

$size = (glob("audio/*.mp3"));
        
echo "<table border><tr><th>Dateiname</th><th>Dateingröße</th></tr>";
    foreach ($files as $file) {
        echo 
        "<tr>
            <td>
                <a href='audio/" . $file . "'target='_blank'>" . $file . "</a>
            </td>
            <td>" . filesize($size) . " Byte
            </td>
        </tr>";
    }
echo "</table>";

谁能告诉我如何解决这个问题,所以尺寸显示在第二个表格列中?

解决方法

您似乎对每个函数实际执行和返回的内容有些困惑。

这是代码的工作版本,我删除了一些部分,因为它们在做同样的事情。当您循环遍历数组 $files 时,您在循环中使用了另一个数组 $size,该函数只接受字符串 filesize()

<?php

$files = (glob("audio/*.mp3"));
sort($files,SORT_NATURAL | SORT_FLAG_CASE);

echo "<table border><tr><th>Dateiname</th><th>Dateingröße</th></tr>";
foreach ($files as $file) {
    echo
        "<tr>
            <td>
                <a href='".$file."'target='_blank'>".basename($file)."</a>
            </td>
            <td>".filesize($file)." Byte
            </td>
        </tr>";
}
echo "</table>";
,

文档会告诉您 glob() 返回 array,而 filesize() 需要 string,更准确地说,是执行 {{ 1}} 打电话。

您正在循环访问相对目录('audio')中的文件列表,而 stat() 将仅返回文件名。要获取 scandir() 返回的每个文件的文件大小,您必须将(相对)路径传递给文件。即,包括其父目录。

改变这个:

scandir()

为此:

filesize($size)

它应该可以工作(未经测试)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。