Предупреждение PHP: filemtime () [ function.filemtime </a>] - PullRequest
0 голосов
/ 30 декабря 2011

Я заметил, что каталог, в котором установлен один из сценариев PHP, имеет очень большой файл error_log размером почти 1 ГБ, в основном ошибки генерируются путем кодирования в строках 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 ]

2 голосов
/ 30 декабря 2011

Ошибка stat failed будет означать, что файл /home/khan/public_html/games/ZBall.jar либо не существует, либо не может быть прочитан из-за ошибки разрешения. Убедитесь, что файл существует в том месте, где ищет PHP, так как это кажется наиболее вероятной причиной проблемы.

Поскольку он исходит из массива $mp3s, убедитесь, что массив содержит имена файлов, которые существуют, и измените его, если нет.

1 голос
/ 30 декабря 2011

попросите файл, прежде чем что-то делать с ним.checm my edit:

<?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];
 }
0 голосов
/ 23 августа 2015

На сайте 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); 
}

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

...