PHP 未显示目录中文件的文件大小
PHP filesize for files in directory not shown
我想显示 table 目录中每个文件的文件大小。
但是无法显示文件的大小。
这是我使用的代码:
$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>";
谁能告诉我如何解决这个问题,让尺寸显示在第二 table 列中?
文档会告诉您 glob() returns an array
, while filesize() 需要 string
,更准确地说,是执行 stat()
调用的文件名。
您正在从相对目录 ('audio') 循环文件列表,而 scandir()
将仅返回 文件名 。要获取 scandir()
返回的每个文件的文件大小,您必须将(相对)路径传递给该文件。即包括其父目录。
改变这个:
filesize($size)
为此:
filesize("audio/$file")
它应该可以工作(未经测试)。
您似乎对每个函数的实际作用有点困惑 returns。
这是代码的工作版本,我删除了一些部分,因为它们在做同样的事情。当您循环遍历一个数组 $files
时,您在一个只接受字符串 filesize()
.
的函数中的循环中使用了另一个数组 $size
<?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>";
我想显示 table 目录中每个文件的文件大小。 但是无法显示文件的大小。
这是我使用的代码:
$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>";
谁能告诉我如何解决这个问题,让尺寸显示在第二 table 列中?
文档会告诉您 glob() returns an array
, while filesize() 需要 string
,更准确地说,是执行 stat()
调用的文件名。
您正在从相对目录 ('audio') 循环文件列表,而 scandir()
将仅返回 文件名 。要获取 scandir()
返回的每个文件的文件大小,您必须将(相对)路径传递给该文件。即包括其父目录。
改变这个:
filesize($size)
为此:
filesize("audio/$file")
它应该可以工作(未经测试)。
您似乎对每个函数的实际作用有点困惑 returns。
这是代码的工作版本,我删除了一些部分,因为它们在做同样的事情。当您循环遍历一个数组 $files
时,您在一个只接受字符串 filesize()
.
$size
<?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>";