Анализирање на содржината на папка во 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

Дадена е папка. Запишете го на крајот од секоја датотека од оваа папка тековниот момент на време.