сценарий PHP для удаления файлов, более старых, чем 24 часа, удаляет все файлы

Я записал этот сценарий PHP для удаления старых файлов, более старых, чем 24 часа, но он удалил все файлы включая более новые:

<?php
  $path = 'ftmp/';
  if ($handle = opendir($path)) {
     while (false !== ($file = readdir($handle))) {
        if ((time()-filectime($path.$file)) < 86400) {  
           if (preg_match('/\.pdf$/i', $file)) {
              unlink($path.$file);
           }
        }
     }
   }
?>
28
задан Brian Tompsett - 汤莱恩 6 July 2015 в 20:54
поделиться

2 ответа

(time()-filectime($path.$file)) < 86400

Если текущее время и время изменения файла составляют в пределах 86400 секунд друг от друга, то ...

 if (preg_match('/\.pdf$/i', $file)) {
     unlink($path.$file);
 }

Я думаю, это может быть вашей проблемой. Измените его на> или> =, и он должен работать правильно.

31
ответ дан 28 November 2019 в 02:18
поделиться
  1. Вместо этого вы хотите > .
  2. Если вы не работаете в Windows, вам потребуется filemtime () .
8
ответ дан 28 November 2019 в 02:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: