-1

我有以下代码:

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.

怎么了?

感谢你并致以真诚的问候

4

1 回答 1

0

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

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

stat()根据您的情况,可能有不同的理由这样说。

于 2013-01-16T13:24:21.960 回答