PHP:ssä hakemiston sisällön analysointi
Oletetaan, että meillä on tietty hakemisto dir,
joka sisältää sekä tiedostoja että alihakemistoja.
Saadaan lista nimistä tästä hakemistosta:
<?php
$files = array_diff(scandir('dir'), ['..', '.']);
?>
Tarkistetaan jokaiselle nimelle, onko se tiedosto vai hakemisto:
<?php
$files = array_diff(scandir('dir'), ['..', '.']);
foreach ($files as $file) {
echo $file;
var_dump(is_file('dir/' . $file));
}
?>
Huomaa, että hakemiston nimi, jota skannaamme, on kirjoitettu kahteen kohtaan koodia. Tämä ei ole kovin kätevää. Laitetaan tämä nimi omaan muuttujaansa:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
echo $file;
var_dump(is_file($dir. '/' . $file));
}
?>
Tulostetaan nyt kaikkien tiedostojen sisältö näytölle:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
if (is_file($dir. '/' . $file)) {
echo file_get_contents($dir. '/' . $file);
}
}
?>
Voidaan huomata, että tiedostopolku lasketaan kahdesti. Laitetaan se omaan muuttujaansa:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
$path = $dir. '/' . $file; // polku tiedostoon
if (is_file($path)) {
echo file_get_contents($path);
}
}
?>
Annettu hakemisto. Tulosta näytölle sarake tämän hakemiston alihakemistojen nimiä.
Annettu hakemisto. Tulosta näytölle sarake tämän hakemiston tiedostojen nimiä.
Annettu hakemisto. Kirjoita jokaisen tämän hakemiston tiedoston loppuun nykyinen hetki.