【问题标题】:Getting file timestamp with php goes wrong用php获取文件时间戳出错
【发布时间】:2013-01-16 13:19:34
【问题描述】:

我有以下代码:

public static function getLogFiles()
{
    $dir    = '../tmp/logs';
    $files = scandir($dir);

    foreach ($files as $filename){
        echo "$filename wurde zuletzt modifiziert:: " . date ("F d Y H:i:s.", filemtime($filename)) . "<br>";
    }

    die();
}

用于调试

print_r($files);

并得到一个包含所有文件的数组。 但我只得到前两个修改日期:

 . wurde zuletzt modifiziert:: January 14 2013 09:06:05. 

.. wurde zuletzt modifiziert:: December 14 2012 10:46:34.


Warning (2): filemtime(): stat failed for Fleetster.log [APP\Lib\Log4All.php, line 134]

system.log wurde zuletzt modifiziert:: January 01 1970 01:00:00.

Warning (2): filemtime() [function.filemtime]: stat failed for debug.log [APP\Lib\Log4All.php, line 134]

debug.log wurde zuletzt modifiziert:: January 01 1970 01:00:00.

Warning (2): filemtime() [function.filemtime]: stat failed for error.log [APP\Lib\Log4All.php, line 134]

error.log wurde zuletzt modifiziert:: January 01 1970 01:00:00.

怎么了?

谢谢你和最好的问候

【问题讨论】:

  • 如果您从命令行对“问题”文件运行 stat 会发生什么?

标签: php timestamp filemtime


【解决方案1】:

如果您的文件对于stat() 来说太大(它使用该功能),您会得到这个。手册页上的 cmets 说;

如果 PHP 的整数类型在您的系统上只有 32 位,filemtime() 将在超过 2GB 的文件上失败,并显示警告“stat failed”。所有与 stat() 相关的命令都将表现出相同的行为。

stat() 这么说可能有不同的原因,这取决于你的情况。

【讨论】:

  • 谢谢,但最大的文件是 63KB 大
  • 好的,这些失败文件的权限如何?你不能统计一个你没有权限的文件
  • 我不确定。我在win8上以管理员身份登录。可以读取数组中的文件。此外,我正在为“。”获取此信息。和“..”不管是什么...这足以确保我有足够的权限吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-26
  • 2013-01-20
  • 1970-01-01
  • 2016-09-22
  • 1970-01-01
  • 1970-01-01
  • 2013-06-24
相关资源
最近更新 更多