Анализирање садржаја директоријума у PHP
Нека нам је дат одређени директоријум dir,
који у себи садржи и фајлове и директоријуме.
Хајде да добијемо низ имена из овог директоријума:
<?php
$files = array_diff(scandir('dir'), ['..', '.']);
?>
Хајде за свако име да проверимо, да ли је то фајл или директоријум:
<?php
$files = array_diff(scandir('dir'), ['..', '.']);
foreach ($files as $file) {
echo $file;
var_dump(is_file('dir/' . $file));
}
?>
Обратите пажњу на то што је име директоријума који скенирамо, написано на два места у коду. То није баш погодно. Издвојимо то име у засебну променљиву:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
echo $file;
var_dump(is_file($dir. '/' . $file));
}
?>
Хајде сада за све фајлове да испишемо на екран њихов садржај:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
if (is_file($dir. '/' . $file)) {
echo file_get_contents($dir. '/' . $file);
}
}
?>
Може се приметити да се путања до фајла израчунава два пута. Хајде да је издвојимо у засебну променљиву:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
$path = $dir. '/' . $file; // путања до фајла
if (is_file($path)) {
echo file_get_contents($path);
}
}
?>
Дат је директоријум. Испишите на екран колону имена потдиректоријума из тог директоријума.
Дат је директоријум. Испишите на екран колону имена фајлова из тог директоријума.
Дат је директоријум. Запишите на крај сваког фајла тог директоријума тренутни моменат времена.