使用PHP,我希望将文件列在一个小文件夹中,以及它们的文件大小(以及可选的修改日期)
文件名显示正常,但文件大小显示为空
E.G.-
$myDir = opendir("xxxxxxxx");
// get each entry
while($entryName = readdir($myDir)) {
if ($entryName != "." && $entryName != "..") {
echo $entryName . ' --- ' . filesize($entryName) . ' bytes<br/>';
$dirArray[] = $entryName;
}
}
显示为
file1 --- bytes
file2 --- bytes 等......
为什么没有拾取文件大小? (我稍后会处理申请)?
答案 0 :(得分:2)
您已经获取了该特定文件夹的文件,因此您正在循环浏览文件(并且您可以正确获取名称)。但是,当您尝试获取文件大小时,您并未键入完整路径。请记住,您现在已进入目录。
因此,为filesize()
函数提供每个文件的整个相对路径,它可以正常工作:
$dir = "test";
$myDir = opendir($dir);
while($entryName = readdir($myDir)) {
if ($entryName != "." && $entryName != "..") {
echo $entryName . ' --- ' . filesize($test."/".$entryName) . ' bytes<br/>';
$dirArray[] = $entryName;
}
}
作为旁注,尺寸显示为&#34;空&#34;因为该功能实际上是错误的,但你可能有错误报告,所以没有任何显示。
将置于非常有帮助(仅在开发中,在制作中你应该隐藏错误并将其记录到文件等),因为你立刻就可以了知道有些事情是错的,并且大多数时候错误信息几乎都说明了解决问题的方法。
例如,您在错误报告中遇到错误:
警告:filesize():stat for ... in ... on xxx
要在脚本持续时间内打开错误报告,请在打开PHP标记后立即添加此行:
error_reporting(E_ALL);
要在php.ini
中更长久地启用它,请添加,修改或取消注释(取决于您当前的设置)此行:
error_reporting = E_ALL
详细了解the manual
中的错误报告