Analizăm conținutul unui director în PHP
Să presupunem că avem un director dir,
care conține atât fișiere, cât și directoare.
Să obținem un array cu numele din acest director:
<?php
$files = array_diff(scandir('dir'), ['..', '.']);
?>
Să verificăm pentru fiecare nume dacă este fișier sau director:
<?php
$files = array_diff(scandir('dir'), ['..', '.']);
foreach ($files as $file) {
echo $file;
var_dump(is_file('dir/' . $file));
}
?>
Observați că numele directorului pe care îl scanăm este scris în două locuri în cod. Acest lucru nu este foarte convenabil. Să scoatem acest nume într-o variabilă separată:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
echo $file;
var_dump(is_file($dir. '/' . $file));
}
?>
Acum să afișăm conținutul pentru toate fișierele:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
if (is_file($dir. '/' . $file)) {
echo file_get_contents($dir. '/' . $file);
}
}
?>
Se poate observa că calea către fișier este calculată de două ori. Să o scoatem într-o variabilă separată:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
$path = $dir. '/' . $file; // calea către fișier
if (is_file($path)) {
echo file_get_contents($path);
}
}
?>
Este dat un director. Afișați pe ecran un nume de coloană subdirectoarelor din acest director.
Este dat un director. Afișați pe ecran un nume de coloană fișierelor din acest director.
Este dat un director. Scrieți la sfârșitul fiecărui fișier din acest director momentul curent de timp.