Procházení obsahu složky v PHP

Předpokládejme, že máme danou složku dir, která obsahuje jak soubory, tak podsložky.

Získejme pole názvů z této složky:

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

Pro každý název ověřme, zda se jedná o soubor nebo složku:

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

Všimněte si, že název složky, kterou procházíme, je uveden na dvou místech kódu. To není příliš praktické. Uložme jej do samostatné proměnné:

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

Nyní pro všechny soubory vypišme na obrazovku jejich obsah:

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

Lze si všimnout, že cesta k souboru se počítá dvakrát. Uložme ji do samostatné proměnné:

php<?php
  $dir = 'dir';
  $files = array_diff(scandir($dir), ['..', '.']);
  
  foreach ($files as $file) {
    $path = $dir. '/' . $file; // cesta k souboru
    
    if (is_file($path)) {
      echo file_get_contents($path);
    }
  }
?>
Задание 1

Je dána složka. Vypište na obrazovku sloupec názvů podsložek z této složky.

Задание 2

Je dána složka. Vypište na obrazovku sloupec názvů souborů z této složky.

Задание 3

Je dána složka. Zapište na konec každého souboru této složky aktuální časový okamžik.