Разбираем содержимое папки в PHP

Пусть у нас дана некоторая папка dir, содержащая в себе как файлы, так и папки.

Давайте получим массив имен из этой папки:

php<?php
  $files = array_diff(scandir('dir'), ['..', '.']);
?>

Давайте для каждого имени проверим, это файл или папка:

php<?php
  $files = array_diff(scandir('dir'), ['..', '.']);
  
  foreach ($files as $file) {
    echo $file;
    var_dump(is_file('dir/' . $file));
  }
?>

Обратите внимание на то, что имя папки, которую мы сканируем, написано в двух местах кода. Это не очень удобно. Вынесем это имя в отдельную переменную:

php<?php
  $dir = 'dir';
  $files = array_diff(scandir($dir), ['..', '.']);
  
  foreach ($files as $file) {
    echo $file;
    var_dump(is_file($dir. '/' . $file));
  }
?>

Давайте теперь для всех файлов выведем на экран их содержимое:

php<?php
  $dir = 'dir';
  $files = array_diff(scandir($dir), ['..', '.']);
  
  foreach ($files as $file) {
    if (is_file($dir. '/' . $file)) {
      echo file_get_contents($dir. '/' . $file);
    }
  }
?>

Можно заметить, что путь к файлу вычисляется два раза. Давайте вынесем его в отдельную переменную:

php<?php
  $dir = 'dir';
  $files = array_diff(scandir($dir), ['..', '.']);
  
  foreach ($files as $file) {
    $path = $dir. '/' . $file; // путь к файлу
    
    if (is_file($path)) {
      echo file_get_contents($path);
    }
  }
?>
Задание 1

Дана папка. Выведите на экран столбец имен подпапок из этой папки.

Задание 2

Дана папка. Выведите на экран столбец имен файлов из этой папки.

Задание 3

Дана папка. Запишите в конец каждого файла этой папки текущий момент времени.