0Pricing
PHP Academy · Lektion

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 auflisten
  • mkdir() – Verzeichnis erstellen
  • rmdir() – leeres Verzeichnis entfernen
  • glob() – 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 done

Schnelltest

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 finden
  • mkdir($path, 0755, true) – rekursiv erstellen
  • rmdir() – leeres Verzeichnis entfernen
  • RecursiveDirectoryIterator für die rekursive Durchsuchung
  • __DIR__ und DIRECTORY_SEPARATOR fü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

  1. Dateien mit PHP auslesen
  2. In Dateien schreiben und Daten anhängen
  3. Mit Verzeichnissen arbeiten
  4. Datei-Uploads verarbeiten
← Zurück zu PHP Academy