Analisando o conteúdo de uma pasta em PHP

Suponha que temos uma pasta dir, contendo tanto arquivos quanto pastas.

Vamos obter um array com os nomes dessa pasta:

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

Vamos verificar para cada nome se é um arquivo ou uma pasta:

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

Observe que o nome da pasta que estamos escanando está escrito em dois lugares do código. Isso não é muito conveniente. Vamos colocá-lo em uma variável separada:

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

Agora, vamos exibir o conteúdo de todos os arquivos:

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

Pode-se notar que o caminho para o arquivo é calculado duas vezes. Vamos colocá-lo em uma variável separada:

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

É dada uma pasta. Exiba na tela uma coluna com os nomes das subpastas desta pasta.

Задание 2

É dada uma pasta. Exiba na tela uma coluna com os nomes dos arquivos desta pasta.

Задание 3

É dada uma pasta. Adicione ao final de cada arquivo desta pasta o momento atual (data e hora).