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

एक डायरेक्टरी दी गई है। इस डायरेक्टरी की प्रत्येक फाइल के अंत में वर्तमान समय लिखें।