san_jorich
@san_jorich
Творческий кодер

Как PHP вывести файлы по дате добавления?

Здравствуйте!
Пиишу парсер(условно) папки на 5 крайних добавленных файлов
<?php
$skip = array('.', '..'); $format = array('pdf','mp4'); $files = scandir($path);
	foreach($files as $file) { 
		if(!in_array($file, $skip) and in_array(substr(strrchr($file, '.'), 1),$format)) {
			echo $file . ' '. date ("F d Y H:i:s.",filemtime($file)).'<br />'; 
		}
	}
?>

На данном этапе пытаюсь просто вывести даты изменений файлов, и уже словил
Warning: filemtime(): stat failed for license.pdf in
, и датой изменения код выводит January 01 1970 00:00:00.
Вопрос 1: Как поправить, как правильно взять даты?
Вопрос 2: второй: Как их после правильно сравнить и вывести 5 последних (свежезагруженных) файлов?
  • Вопрос задан
  • 161 просмотр
Пригласить эксперта
Ответы на вопрос 1
@Catrinblaidd
$formats = ['pdf','mp4'];
$files = \array_values(\array_diff(\scandir($path), ['..', '.']));
$list = [];
foreach ($files as $file) {
  \preg_match('/\.([^\.]+$)/', $file, $format);
  if (!empty($format)) {
    $format = $format[1];
    if (\in_array($format, $formats)) {
      $time = \filectime($path . $file);
      $time = \date("F d Y H:i:s.", $time);
      $list[$time] = $file;
    }
  }
}
\krsort($list);
$list = \array_slice($list, 0, 5);
foreach ($list as $date => $file) {
  echo "$file $date <br>"; 
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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