Mit Verzeichnissen arbeiten
Listen, erstellen und löschen Sie Verzeichnisse mit scandir und mkdir.
Mit Verzeichnissen arbeiten ist eine kostenlose PHP Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des PHP Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der PHP Academy-Kurs umfasst insgesamt 4 Lektionen.
Verzeichnisoperationen in PHP
PHP stellt Funktionen bereit, um Verzeichnisse auf dem Server aufzulisten, zu erstellen, zu durchsuchen und zu löschen:
scandir()– Verzeichnisinhalt auflistenmkdir()– Verzeichnis erstellenrmdir()– leeres Verzeichnis entfernenglob()– Dateien finden, die einem Muster entsprechen
scandir()
Alle Dateien und Verzeichnisse in einem Verzeichnis auflisten:
<?php
$entries = scandir('/var/www/html/uploads');
// scandir includes '.' and '..'
$entries = array_diff($entries, ['.', '..']);
foreach ($entries as $entry) {
echo $entry . PHP_EOL;
}glob()-Mustersuche
glob() gibt Dateien zurück, die einem Shell-ähnlichen Muster entsprechen:
<?php
// Find all PHP files in a directory
$phpFiles = glob('/var/www/html/*.php');
// Recursively with GLOB_BRACE
$logs = glob('/var/log/{app,error,access}.log', GLOB_BRACE);
foreach ($phpFiles as $file) {
echo basename($file) . PHP_EOL;
}mkdir() und Berechtigungen
Ein einzelnes oder mehrere verschachtelte Verzeichnisse erstellen:
<?php
$dir = '/var/www/uploads/2024/05';
// Create nested directories in one call:
if (!is_dir($dir)) {
mkdir($dir, 0755, true); // true = recursive
echo "Created: $dir";
}Verzeichnisse löschen
rmdir() entfernt nur leere Verzeichnisse. Verwenden Sie zum Löschen von Verzeichnissen mit Inhalt eine rekursive Funktion:
<?php
function deleteDir(string $path): void {
foreach (scandir($path) as $entry) {
if ($entry === '.' || $entry === '..') continue;
$full = $path . DIRECTORY_SEPARATOR . $entry;
is_dir($full) ? deleteDir($full) : unlink($full);
}
rmdir($path);
}
deleteDir('/tmp/old_cache');Verzeichnisiteration mit DirectoryIterator
Objektorientierte Möglichkeit, den Inhalt eines Verzeichnisses zu durchlaufen:
<?php
$dir = new DirectoryIterator('/var/www/html/images');
foreach ($dir as $info) {
if ($info->isDot()) continue;
echo $info->getFilename();
echo ' (' . $info->getSize() . ' bytes)';
echo PHP_EOL;
}RecursiveDirectoryIterator
Alle Dateien in einem Verzeichnisbaum rekursiv durchlaufen:
<?php
$iterator = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator('/var/www/src')
);
foreach ($iterator as $file) {
if ($file->isDot()) continue;
if ($file->getExtension() === 'php') {
echo $file->getPathname() . PHP_EOL;
}
}getcwd und chdir
Das aktuelle Arbeitsverzeichnis abrufen und ändern:
<?php
$originalDir = getcwd();
echo 'Current: ' . $originalDir . PHP_EOL;
chdir('/var/www/html');
echo 'Changed to: ' . getcwd() . PHP_EOL;
// Restore
chdir($originalDir);
echo 'Restored: ' . getcwd() . PHP_EOL;Pfade bearbeiten
Dateipfade mit portablen Konstanten und Funktionen erstellen und analysieren:
<?php
// DIRECTORY_SEPARATOR = '/' on Unix, '\\' on Windows
$base = '/var/www/app';
$subPath = 'uploads' . DIRECTORY_SEPARATOR . 'images';
$full = $base . DIRECTORY_SEPARATOR . $subPath;
echo realpath($full); // resolves symlinks
// __DIR__ is the directory of the current file
$configPath = __DIR__ . '/../config/settings.json';
echo realpath($configPath);Speicherplatz
Verfügbaren und gesamten Speicherplatz prüfen:
<?php
$path = '/var/www';
$free = disk_free_space($path);
$total = disk_total_space($path);
$used = $total - $free;
echo 'Used: ' . round($used / 1024**3, 2) . ' GB';
echo 'Free: ' . round($free / 1024**3, 2) . ' GB';
echo 'Total: ' . round($total / 1024**3, 2) . ' GB';SPL-Temp-Verzeichnis
Verwenden Sie immer sys_get_temp_dir(), um plattformübergreifend das richtige temporäre Verzeichnis zu ermitteln:
<?php
$tmpDir = sys_get_temp_dir();
echo 'Temp dir: ' . $tmpDir;
// Create a unique temporary directory
$uniqueDir = $tmpDir . DIRECTORY_SEPARATOR . 'myapp_' . uniqid();
mkdir($uniqueDir, 0700);
// ... use directory ...
// cleanup when doneSchnelltest
Welche PHP-Funktion erstellt verschachtelte Verzeichnisse rekursiv mit einem einzigen Aufruf?
Zusammenfassung: Mit Verzeichnissen arbeiten
Verzeichnisoperationen:
scandir()– Inhalte auflisten (einschließlich . und ..)glob()– Dateien anhand eines Musters findenmkdir($path, 0755, true)– rekursiv erstellenrmdir()– leeres Verzeichnis entfernen- RecursiveDirectoryIterator für die rekursive Durchsuchung
__DIR__undDIRECTORY_SEPARATORfür portable Pfade
Häufig gestellte Fragen
Ist die Lektion „Mit Verzeichnissen arbeiten“ kostenlos?
Ja — der vollständige Text von „Mit Verzeichnissen arbeiten“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des PHP Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der PHP Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Mit Verzeichnissen arbeiten“?
Listen, erstellen und löschen Sie Verzeichnisse mit scandir und mkdir. Du übst PHP Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um PHP Academy zu starten?
Keine Vorkenntnisse erforderlich. PHP Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „Mit Verzeichnissen arbeiten“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser PHP Academy-Lektion Code schreiben und ausführen?
Ja. Jede PHP Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Dateien mit PHP auslesen
- In Dateien schreiben und Daten anhängen
- Mit Verzeichnissen arbeiten
- Datei-Uploads verarbeiten