PHP:ssä hakemiston sisällön analysointi

Oletetaan, että meillä on tietty hakemisto dir, joka sisältää sekä tiedostoja että alihakemistoja.

Saadaan lista nimistä tästä hakemistosta:

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

Tarkistetaan jokaiselle nimelle, onko se tiedosto vai hakemisto:

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

Huomaa, että hakemiston nimi, jota skannaamme, on kirjoitettu kahteen kohtaan koodia. Tämä ei ole kovin kätevää. Laitetaan tämä nimi omaan muuttujaansa:

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

Tulostetaan nyt kaikkien tiedostojen sisältö näytölle:

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

Voidaan huomata, että tiedostopolku lasketaan kahdesti. Laitetaan se omaan muuttujaansa:

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

Annettu hakemisto. Tulosta näytölle sarake tämän hakemiston alihakemistojen nimiä.

Задание 2

Annettu hakemisto. Tulosta näytölle sarake tämän hakemiston tiedostojen nimiä.

Задание 3

Annettu hakemisto. Kirjoita jokaisen tämän hakemiston tiedoston loppuun nykyinen hetki.