Analizzare il contenuto di una cartella in PHP

Supponiamo di avere una cartella dir che contiene sia file che cartelle.

Otteniamo un array con i nomi da questa cartella:

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

Controlliamo per ogni nome se è un file o una cartella:

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

Nota che il nome della cartella che stiamo scandendo è scritto in due punti del codice. Questo non è molto conveniente. Inseriamo questo nome in una variabile separata:

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

Ora per tutti i file visualizziamo il loro contenuto:

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

Si può notare che il percorso del file viene calcolato due volte. Inseriamolo in una variabile separata:

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

Data una cartella. Visualizza a schermo un elenco verticale dei nomi delle sottocartelle di questa cartella.

Задание 2

Data una cartella. Visualizza a schermo un elenco verticale dei nomi dei file di questa cartella.

Задание 3

Data una cartella. Aggiungi alla fine di ogni file di questa cartella l'istante temporale corrente.