我有一个问题,我可以看到在互联网上被问到,但我没有看到一个可以帮助我的答案。
长话短说;我有一个PHP脚本列出目录中的文件(文件名,ctime)。文件名和文件名都是创建日期工作正常,但我正在努力与文件大小。
这是列出特定文件夹中文件的代码:
//show only files with 'xml' extension
if ($files[$b] != "." && $files[$b] != ".." && $ext == 'xml') {
echo "<tr style=\"border: 1px solid gray; background-color:";
if ($even) {
echo "#fff5cc;\">";
} else {
echo "white;\">";
}
echo "<td>$files[$b]";
echo "(" . filesize($files[$b]) . ")";
//echo filesize($files[$b]);
echo "</td>";
echo "<td>" . date("F d Y H:i:s.", filectime(UPLOAD_FOLDER . "/" . $files[$b])) . "</td>";
}
$even = !$even;
}
?>
关键内容发生在显示文件大小的行代码中; PHP错误是“统计失败...”。我不得不承认我不知道为什么因为我能够打开文件(其中一个函数实际打开XML文件并将其内容放到文本区域)。
由于大多数答案都是关于权限的,我实际上尝试将777权限添加到测试文件中,将777权限添加到保存文件的文件夹中,但无济于事。提前谢谢!
答案 0 :(得分:1)
我相信您忘记将完整路径链接到该文件。看看下面几行:
filectime(UPLOAD_FOLDER . "/" . $files[$b])
所以,同样应该到处都是:
filesize(UPLOAD_FOLDER . "/" . $files[$b])
评论如下:
另外,我认为$b
是一个迭代器。如果是,则不需要$even
变量,因为您可以使用模运算符:
if($b%2==0)
//event
使用其他变量不是问题,但是了解其他可能的解决方案是很好的。
我还会告诉您有一个glob
功能。您可以使用它来获取XML文件列表:
$list = glob(UPLOAD_FOLDER . "/*.xml");