-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);

すべてのファイルを含む配列を取得します。しかし、最初の 2 つの変更日しか取得できません。

 . 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 に答える