PHP'de Bir Klasörün İçeriğini İnceleme

Bizim bir dir klasörümüz olduğunu varsayalım, içinde hem dosyalar hem de klasörler bulunsun.

Bu klasörden bir isim dizisi alalım:

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

Her bir isim için, bunun bir dosya mı yoksa klasör mü olduğunu kontrol edelim:

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

Taramakta olduğumuz klasörün adının kodun iki yerinde yazılı olduğuna dikkat edin. Bu pek kullanışlı değil. Bu adı ayrı bir değişkene atalım:

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

Şimdi tüm dosyalar için içeriklerini ekrana yazdıralım:

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

Dosya yolunun iki kez hesaplandığı fark edilebilir. Bunu ayrı bir değişkene atayalım:

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

Bir klasör verildi. Bu klasörün alt klasörlerinin adlarını bir sütun halinde ekrana yazdırın.

Задание 2

Bir klasör verildi. Bu klasördeki dosyaların adlarını bir sütun halinde ekrana yazdırın.

Задание 3

Bir klasör verildi. Bu klasördeki her dosyanın sonuna mevcut zaman bilgisini ekleyin.