PHP警告:filemtime()[<a href="function.filemtime">function.filemtime</a>]

时间:2011-12-30 19:34:27

标签: php filemtime

我注意到安装其中一个PHP脚本的目录有非常大的error_log文件,大小只有1GB大小,大多数错误都是通过478和479行编码生成的.. error_log文件中的错误示例如下:

PHP Warning:  filemtime() [<a href='function.filemtime'>function.filemtime</a>]: stat failed for /home/khan/public_html/folder/ZBall.jar in /home/khan/public_html/folder/index.php on line 478
PHP Warning:  filemtime() [<a href='function.filemtime'>function.filemtime</a>]: stat failed for /home/khan/public_html/folder/ZBall.jar in /home/khan/public_html/folder/index.php on line 479

我有以下编码,第477到484行

foreach ($mp3s as $gftkey => $gftrow) {
   $ftimes[$gftkey] = array(filemtime($thecurrentdir.$gftrow),$gftrow);
   $ftimes2[$gftkey] = filemtime($thecurrentdir.$gftrow);
 }
 array_multisort($ftimes2,SORT_DESC,$ftimes);
 foreach ($ftimes as $readd) {
   $newmp3s[] = $readd[1];
 }

请帮我解决这个问题。

谢谢.. :))

3 个答案:

答案 0 :(得分:2)

stat failed错误表示文件/home/khan/public_html/games/ZBall.jar不存在,或者由于权限错误而无法读取。确保文件存在于PHP正在查找的位置,因为这似乎是问题的最原因。

由于它来自数组$mp3s,请确保该数组包含存在的文件的名称,如果不存在则修改它。

答案 1 :(得分:1)

在用它做某事之前询问该文件。检查我的编辑:

<?php
foreach ($mp3s as $gftkey => $gftrow) {
   if (file_exists($thecurrentdir.$gftrow)) {
     $ftimes[$gftkey] = array(filemtime($thecurrentdir.$gftrow),$gftrow);
     $ftimes2[$gftkey] = filemtime($thecurrentdir.$gftrow);
   }
 }
 array_multisort($ftimes2,SORT_DESC,$ftimes);
 foreach ($ftimes as $readd) {
   $newmp3s[] = $readd[1];
 }

答案 2 :(得分:0)

PHP.net网站上有一个功能可以删除Windows上有关filemtime

的错误
function GetCorrectMTime($filePath) { 

$time = filemtime($filePath); 

$isDST = (date('I', $time) == 1); 
$systemDST = (date('I') == 1); 

$adjustment = 0; 

if($isDST == false && $systemDST == true) 
    $adjustment = 3600; 

else if($isDST == true && $systemDST == false) 
    $adjustment = -3600; 

else 
    $adjustment = 0; 

return ($time + $adjustment); 
}

来源:http://php.net/manual/tr/function.filemtime.php#100692