PHP katalogo turinio analizė

Tarkime, kad turime tam tikrą katalogą dir, kuriame yra ir failų, ir katalogų.

Gaukime šio katalogo pavadinimų masyvą:

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

Patikrinkime kiekvienam pavadinimui, ar tai failas, ar katalogas:

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

Atkreipkite dėmesį, kad katalogo, kurį skenuojame, pavadinimas parašytas dviem kodo vietose. Tai nėra labai patogu. Išskirkime šį pavadinimą į atskirą kintamąjį:

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

Dabar visiems failams išveskime į ekraną jų turinį:

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

Galima pastebėti, kad failo kelias apskaičiuojamas du kartus. Išskirkime jį į atskirą kintamąjį:

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

Duotas katalogas. Išveskite į ekraną pogrupių iš šio katalogo pavadinimų stulpelį.

Задание 2

Duotas katalogas. Išveskite į ekraną failų iš šio katalogo pavadinimų stulpelį.

Задание 3

Duotas katalogas. Įrašykite į kiekvieno failo galą esamą laiko momentą.