Inhalte eines Verzeichnisses in PHP analysieren
Nehmen wir an, wir haben ein bestimmtes Verzeichnis dir,
das sowohl Dateien als auch Unterverzeichnisse enthält.
Lassen Sie uns ein Array mit den Namen aus diesem Verzeichnis abrufen:
<?php
$files = array_diff(scandir('dir'), ['..', '.']);
?>
Lassen Sie uns für jeden Namen prüfen, ob es sich um eine Datei oder ein Verzeichnis handelt:
<?php
$files = array_diff(scandir('dir'), ['..', '.']);
foreach ($files as $file) {
echo $file;
var_dump(is_file('dir/' . $file));
}
?>
Beachten Sie, dass der Name des Verzeichnisses, das wir durchsuchen, an zwei Stellen im Code steht. Das ist nicht sehr praktisch. Lassen Sie uns diesen Namen in eine separate Variable auslagern:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
echo $file;
var_dump(is_file($dir. '/' . $file));
}
?>
Lassen Sie uns nun für alle Dateien deren Inhalt auf dem Bildschirm ausgeben:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
if (is_file($dir. '/' . $file)) {
echo file_get_contents($dir. '/' . $file);
}
}
?>
Man kann feststellen, dass der Pfad zur Datei zweimal berechnet wird. Lassen Sie uns ihn in eine separate Variable auslagern:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
$path = $dir. '/' . $file; // Pfad zur Datei
if (is_file($path)) {
echo file_get_contents($path);
}
}
?>
Ein Verzeichnis ist gegeben. Geben Sie die Namen der Unterverzeichnisse aus diesem Verzeichnis spaltenweise auf dem Bildschirm aus.
Ein Verzeichnis ist gegeben. Geben Sie die Namen der Dateien aus diesem Verzeichnis spaltenweise auf dem Bildschirm aus.
Ein Verzeichnis ist gegeben. Schreiben Sie den aktuellen Zeitstempel ans Ende jeder Datei in diesem Verzeichnis.