Analyserar innehållet i en mapp i PHP

Låt oss säga att vi har en given mapp dir, som innehåller både filer och mappar.

Låt oss få en array med namn från denna mapp:

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

Låt oss för varje namn kontrollera om det är en fil eller en mapp:

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

Observera att namnet på mappen som vi skannrar är skrivet på två ställen i koden. Detta är inte särskilt bekvämt. Låt oss flytta ut det till en separat variabel:

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

Låt oss nu för alla filer skriva ut deras innehåll till skärmen:

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

Man kan notera att sökvägen till filen beräknas två gånger. Låt oss flytta ut den till en separat variabel:

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

En mapp är given. Skriv ut en kolumn med namn på undermappar från denna mapp.

Задание 2

En mapp är given. Skriv ut en kolumn med namn på filer från denna mapp.

Задание 3

En mapp är given. Skriv till slutet av varje fil i denna mapp det aktuella ögonblicket i tid.