PHP kausta sisu analüüs

Oletagem, et meil on antud kaust dir, mis sisaldab nii faile kui ka kaustu.

Hankigem sellest kaustast nimede massiiv:

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

Kontrolligem iga nime puhul, kas see on fail või kaust:

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

Pange tähele, et kausta nimi, mida me skannime, on kirjutatud kahes kohas koodis. See pole väga mugav. Viime selle nime eraldi muutujasse:

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

Väljastagem nüüd kõikide failide jaoks ekraanile nende sisu:

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

Võib märgata, et faili tee arvutatakse kaks korda. Viime selle eraldi muutujasse:

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

Antud on kaust. Kuva ekraanile veerg selle kausta alamkaustade nimesid.

Задание 2

Antud on kaust. Kuva ekraanile veerg selle kausta failide nimesid.

Задание 3

Antud on kaust. Kirjuta iga selle kausta faili lõppu praegune ajahetk.