我正在开发环境中使用Ubuntu 11.10开发一个php应用程序。 我有一个目录'/ usr / src / app_name /',其中包含一些pdf文件。 我需要检索文件名及其上次修改时间。
以下是代码段:
foreach (new DirectoryIterator('/usr/src/app_name') as $file) {
if($file->isDot()) continue;
print $file->getFilename().' : '.date ("F d Y H:i:s.", filemtime($file)).'<br>';
}
我正确地获取了文件名,但却给了我:PHP警告:filemtime():stat failed ....我得到的时间是1970年1月1日。
但是,如果我将目录更改为应用程序根目录,即
foreach (new DirectoryIterator('/var/www/app_name') as $file) {
if($file->isDot()) continue;
print $file->getFilename().' : '.date ("F d Y H:i:s.", filemtime($file)).'<br>';
}
我得到了应用程序的php文件的所有名称及其上次修改时间。
对此的任何帮助都将非常感谢....提前致谢。
答案 0 :(得分:1)
我知道我已在评论中说过,但当时我不知道是不是问题。所以这是完整的解释。
使用filemtime($file->getRealPath())
可以帮助您解决问题,因为a comment on the doc of filemtime提到您需要将绝对路径提供给filemtime
。现在直接使用迭代器的结果(你的$file
变量)可能会调用DirectoryIterator::__toString
,它只返回文件名,而不是绝对路径。
它可能适用于/var/www
,因为它是工作目录,但我无法确定。