Start · Sprachen · PHP · Referenz · getcwd

getcwd

Funktion

Gibt den absoluten Pfad des aktuellen Arbeitsverzeichnisses zurück.

seit PHP 4.0.0 Kategorie: io

Signatur

getcwd(): string|false

Beschreibung

getcwd() liefert den absoluten Pfad des Verzeichnisses, in dem der PHP-Prozess aktuell arbeitet. Dies entspricht dem Verzeichnis, das als Basis für relative Pfadangaben verwendet wird, sofern keine expliziten absoluten Pfade angegeben wurden.

Die Funktion ist besonders nützlich, wenn Skripte dynamisch Dateien laden oder schreiben müssen und der genaue Ausführungskontext nicht fest kodiert werden soll. In Kombination mit chdir() lässt sich das Arbeitsverzeichnis gezielt wechseln und anschließend wieder auf den ursprünglichen Pfad zurücksetzen.

Im CLI-Modus entspricht das Arbeitsverzeichnis in der Regel dem Verzeichnis, aus dem der PHP-Interpreter aufgerufen wurde. Im Webserver-Kontext (z. B. Apache, Nginx) ist es häufig das Document-Root oder das Verzeichnis des aufgerufenen Skripts – was je nach Serverkonfiguration variieren kann.

Schlägt die Ermittlung fehl (z. B. wegen fehlender Leserechte auf einem übergeordneten Verzeichnis unter Unix), gibt die Funktion false zurück.

Rückgabewert

Typ
string|false
Beschreibung
Gibt den absoluten Pfad des aktuellen Arbeitsverzeichnisses als string zurück. Im Fehlerfall (z. B. unzureichende Berechtigungen) wird false zurückgegeben.

Beispiele

Aktuelles Arbeitsverzeichnis ausgeben

<?php
$cwd = getcwd();
if ($cwd !== false) {
    echo 'Aktuelles Verzeichnis: ' . $cwd;
} else {
    echo 'Konnte das Arbeitsverzeichnis nicht ermitteln.';
}
Aktuelles Verzeichnis: /var/www/html

Verzeichnis wechseln und zurückwechseln

<?php
$originalDir = getcwd();
echo 'Vorher: ' . $originalDir . PHP_EOL;

if (chdir('/tmp')) {
    echo 'Nachher: ' . getcwd() . PHP_EOL;
    // ... Operationen im temporären Verzeichnis ...
    chdir($originalDir);
    echo 'Zurück: ' . getcwd() . PHP_EOL;
} else {
    echo 'Verzeichniswechsel fehlgeschlagen.' . PHP_EOL;
}
Vorher: /var/www/html Nachher: /tmp Zurück: /var/www/html

Pfad relativ zum Skript aufbauen

<?php
// Sicherstellen, dass das Arbeitsverzeichnis das Skriptverzeichnis ist
chdir(__DIR__);

$configFile = getcwd() . '/config/app.php';

if (file_exists($configFile)) {
    echo 'Konfiguration gefunden: ' . $configFile;
} else {
    echo 'Konfigurationsdatei nicht gefunden.';
}
Konfiguration gefunden: /var/www/html/config/app.php

// Wichtig · Fallstricke

Berechtigungen: Unter Unix/Linux kann getcwd() false zurückgeben, wenn der PHP-Prozess keine Leserechte auf eines der übergeordneten Verzeichnisse besitzt – selbst wenn der aktuelle Ordner selbst zugänglich ist.

Webserver-Kontext: Das Arbeitsverzeichnis ist im Webserver-Betrieb nicht immer identisch mit __DIR__ (dem Verzeichnis der aktuellen Datei). Für zuverlässige, skriptbezogene Pfade empfiehlt sich daher die Verwendung von __DIR__ statt getcwd().

Symbolische Links: Auf manchen Systemen kann getcwd() den aufgelösten (realen) Pfad ohne symbolische Links zurückgeben, was von der über chdir() gesetzten Pfadangabe abweichen kann.

Siehe auch