php文件时间返回false其他然后php应用程序';的根目录


php filemtime returning false other then the php application's root directory

我正在开发环境中使用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失败。。。。我得到的时间是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文件的名称以及它们最后的修改时间。

如有任何帮助,我们将不胜感激。。。。提前谢谢。

我知道我已经在评论中说过了,但当时我不知道这是否是问题所在。以下是完整的解释。

使用filemtime($file->getRealPath())可以帮助解决这个问题,因为filemtime文档上的一条注释提到您需要向filemtime提供绝对路径。现在直接使用迭代器的结果($file变量)可能会调用DirectoryIterator::__toString,它只返回文件名,而不是绝对路径。

它可能适用于/var/www,因为它是工作目录,但我不能确定。