filemtime() не работает в Windows PHP-CLI

Я только что получил PHP-CLI, работающий на моей машине с Windows, чтобы я мог создавать сценарии с использованием PHP. Тем не менее, я пытаюсь написать сценарий для очистки папки загрузок Firefox файлов старше X дней, но мне не удается заставить работать функцию filemtime().

Вот функция, которую я написал:

function deleteOldFiles($dir, $days) {
  $mydir = opendir($dir);
  while(($file = readdir($mydir)) !== false) {
    if($file != "." && $file != ".." && (filemtime($dir.$file) <= time() - ($days * 86400))) {
      //unlink($dir.$file) or DIE("Failed to delete $dir$file<br />");
      echo filemtime($dir.$file);
    }
  }
  closedir($mydir);
}

И после запуска этого я получаю следующую ошибку для каждого файла:

Warning: filemtime(): stat failed for E:\My Documents\Downloadsphp-5.3.0-nts-Win32-VC9-x86.msi in E:\_scripts\cleanupDownloads\cleanupDownloads.php on line 10

Из проведенного мною исследования filemtime() должен работать в Windows. Что я делаю неправильно?

1 ответ

Решение

Warning: filemtime(): stat failed for E:\My Documents\Downloadsphp-5.3.0-nts-Win32-VC9-x86.msi in E:\_scripts\cleanupDownloads\cleanupDownloads.php on line 10

Вы пропускаете обратную косую черту \ между каталогом и именем файла. Не забудьте убежать от него в Windows (\\) или просто используйте косую черту (/) или PHP DIRECTORY_SEPARATOR постоянная.

редактировать

И посмотрите на scandir (), glob () или DirectoryIterator.

Другие вопросы по тегам