Разбираме съдържанието на папка в PHP

Нека имаме дадена папка dir, която съдържа както файлове, така и папки.

Нека получим масив с имена от тази папка:

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

Нека за всяко име проверим дали е файл или папка:

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

Обърнете внимание, че името на папката, която сканираме, е написано на две места в кода. Това не е много удобно. Нека изнесем това име в отделна променлива:

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

Нека сега за всички файлове изведем на екрана тяхното съдържание:

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

Може да се забележи, че пътят към файла се изчислява два пъти. Нека го изнесем в отделна променлива:

php<?php
  $dir = 'dir';
  $files = array_diff(scandir($dir), ['..', '.']);
  
  foreach ($files as $file) {
    $path = $dir. '/' . $file; // път към файла
    
    if (is_file($path)) {
      echo file_get_contents($path);
    }
  }
?>
Задание 1

Дадена е папка. Изведете на екрана колона с имената на подпапките от тази папка.

Задание 2

Дадена е папка. Изведете на екрана колона с имената на файловете от тази папка.

Задание 3

Дадена е папка. Запишете в края на всеки файл от тази папка текущия момент от времето.