Analizirajmo sadržaj foldera u PHP-u
Recimo da imamo dati folder dir,
koji sadrži i fajlove i podfoldere.
Hajde da dobijemo niz imena iz ovog foldera:
<?php
$files = array_diff(scandir('dir'), ['..', '.']);
?>
Hajde da proverimo za svako ime, da li je fajl ili folder:
<?php
$files = array_diff(scandir('dir'), ['..', '.']);
foreach ($files as $file) {
echo $file;
var_dump(is_file('dir/' . $file));
}
?>
Obratite pažnju na to da je ime foldera koji skeniramo, napisano na dva mesta u kodu. To nije baš zgodno. Izdvojimo to ime u posebnu promenljivu:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
echo $file;
var_dump(is_file($dir. '/' . $file));
}
?>
Hajde sada da za sve fajlove prikažemo na ekranu njihov sadržaj:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
if (is_file($dir. '/' . $file)) {
echo file_get_contents($dir. '/' . $file);
}
}
?>
Možemo primetiti da se putanja do fajla izračunava dva puta. Hajde da je izdvojimo u posebnu promenljivu:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
$path = $dir. '/' . $file; // putanja do fajla
if (is_file($path)) {
echo file_get_contents($path);
}
}
?>
Dat je folder. Prikažite na ekranu kolonu imena podfoldera iz tog foldera.
Dat je folder. Prikažite na ekranu kolonu imena fajlova iz tog foldera.
Dat je folder. Upišite na kraj svakog fajla u tom folderu trenutni vremenski trenutak.