2013-01-16 41 views
-1

我有以下代碼:獲取文件的時間戳與PHP出錯

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

,並得到了所有文件的數組。 但我只得到了前兩個modifieddates:

. 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. 

有什麼不對?

謝謝你和問候

+0

如果從命令行上的「問題」文件運行'stat'會發生什麼? – dnagirl

回答

0

如果文件是太大stat()(它使用該功能),你會得到這一點。手冊頁上的評論說:

如果PHP的整數類型只有32位在您的系統上,filemtime()將失敗超過2GB的文件與警告「stat失敗」。所有與stat()相關的命令都會顯示相同的行爲。

stat()可能會根據您的具體情況說這一點。

+0

謝謝,但最大的文件是63KB大 – Binary

+0

好吧,這些失敗的文件的權限如何?您無法統計您沒有權限的文件 – Nanne

+0

我不確定。我在win8上以管理員身份登錄。 可以讀取數組中的文件。我也收到這個信息的「。」和「..」無論是...這足以確保我有足夠的權限? – Binary