Analiza vsebine mape v PHP
Recimo, da imamo dano neko mapo dir,
ki vsebuje tako datoteke kot mape.
Pridobimo polje imen iz te mape:
<?php
$files = array_diff(scandir('dir'), ['..', '.']);
?>
Preverimo za vsako ime, ali je to datoteka ali mapa:
<?php
$files = array_diff(scandir('dir'), ['..', '.']);
foreach ($files as $file) {
echo $file;
var_dump(is_file('dir/' . $file));
}
?>
Opozorilo: ime mape, ki jo skeniramo, je zapisano na dveh mestih kode. To ni zelo priročno. Postavimo to ime v ločeno spremenljivko:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
echo $file;
var_dump(is_file($dir. '/' . $file));
}
?>
Zdaj pa za vse datoteke izpišimo ekran njihovo vsebino:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
if (is_file($dir. '/' . $file)) {
echo file_get_contents($dir. '/' . $file);
}
}
?>
Opazimo lahko, da se pot do datoteke izračuna dvakrat. Postavimo jo v ločeno spremenljivko:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
$path = $dir. '/' . $file; // pot do datoteke
if (is_file($path)) {
echo file_get_contents($path);
}
}
?>
Dana je mapa. Izpišite na ekran stolpec imen podmap iz te mape.
Dana je mapa. Izpišite na ekran stolpec imen datotek iz te mape.
Dana je mapa. Zapišite na konec vsake datoteke te mape trenutni časovni trenutek.