Start · Sprachen · PHP · Referenz · is_writeable

is_writeable

Funktion

Alias von <code>is_writable()</code> — prüft, ob eine Datei oder ein Verzeichnis beschreibbar ist.

seit PHP 4.0.0 Kategorie: io

Signatur

is_writeable(string $filename): bool

Beschreibung

is_writeable() ist ein direkter Alias der Funktion is_writable() und verhält sich in jeder Hinsicht identisch. Die Funktion prüft, ob der aktuell ausführende PHP-Prozess Schreibrechte auf die angegebene Datei oder das angegebene Verzeichnis besitzt.

Es empfiehlt sich, bevorzugt den kanonischen Namen is_writable() zu verwenden, da Aliase in zukünftigen PHP-Versionen theoretisch entfernt werden könnten. is_writeable() existiert lediglich aus historischen Kompatibilitätsgründen (alternative englische Schreibweise).

Die Funktion berücksichtigt Betriebssystem-Dateiberechtigungen sowie auf POSIX-Systemen Benutzer- und Gruppenrechte des PHP-Prozesses (oft der Webserver-User). Das Ergebnis wird intern gecacht – mit clearstatcache() kann dieser Cache geleert werden, falls sich Rechte dynamisch geändert haben.

Parameter

Name Typ Default Beschreibung
$filename Pflicht string Pfad zur zu prüfenden Datei oder zum Verzeichnis. Kann ein absoluter oder relativer Pfad sein.

Rückgabewert

Typ
bool
Beschreibung
Gibt true zurück, wenn die Datei oder das Verzeichnis existiert und beschreibbar ist; andernfalls false.

Beispiele

Schreibbarkeit einer Datei prüfen

<?php
$datei = '/var/www/html/uploads/daten.txt';

if (is_writeable($datei)) {
    file_put_contents($datei, 'Neue Daten');
    echo 'Datei erfolgreich beschrieben.';
} else {
    echo 'Fehler: Datei ist nicht beschreibbar.';
}
Datei erfolgreich beschrieben.

Schreibbarkeit eines Upload-Verzeichnisses prüfen

<?php
$uploadDir = '/var/www/html/uploads';

if (is_writeable($uploadDir)) {
    echo 'Das Verzeichnis ist beschreibbar – Upload möglich.';
} else {
    echo 'Das Verzeichnis ist NICHT beschreibbar. Bitte Rechte prüfen (z. B. chmod 775).';
}
Das Verzeichnis ist beschreibbar – Upload möglich.

// Wichtig · Fallstricke

Cache-Verhalten: PHP cached die Ergebnisse von Dateistatistik-Funktionen wie is_writeable(). Wenn sich Dateiberechtigungen innerhalb eines Skript-Laufs ändern, muss clearstatcache() aufgerufen werden, um veraltete Ergebnisse zu vermeiden.

Sicherheitshinweis: Die Prüfung per is_writeable() und der nachfolgende Schreibvorgang sind keine atomare Operation. Zwischen beiden Schritten könnte sich die Berechtigungslage ändern (TOCTOU-Problem). Fehler beim eigentlichen Schreibvorgang sollten daher stets separat behandelt werden.

Alias: Es wird empfohlen, statt is_writeable() den primären Funktionsnamen is_writable() zu verwenden, um künftige Kompatibilitätsprobleme zu vermeiden.