PHPda papka tarkibini tahlil qilish

Faraz qilaylik, bizda dir papkasi bor, uning ichida ham fayllar, ham papkalar mavjud.

Keling, ushbu papkadan nomlar massivini olamiz:

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

Keling, har bir nom uchun tekshiramiz, bu fayl yoki papka ekanligini:

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

E'tibor bering, biz skanerlayotgan papka nomi kodning ikki joyida yozilgan. Bu unchalik qulay emas. Keling, uni alohida o'zgaruvchiga ajratamiz:

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

Keling, endi barcha fayllar uchun ularning tarkibini ekranda chiqaramiz:

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

Faylga bo'lgan yo'l ikki marta hisoblanayotganini ko'rish mumkin. Keling, uni alohida o'zgaruvchiga ajratamiz:

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

Papka berilgan. Ushbu papkadagi ichki papkalar nomonlar ustunini ekranda chiqaring.

Задание 2

Papka berilgan. Ushbu papkadagi fayl nomonlar ustunini ekranda chiqaring.

Задание 3

Papka berilgan. Ushbu papkadagi har bir faylning oxiriga joriy vaqt momentini yozing.