(PHP 4, PHP 5, PHP 7, PHP 8)
dirname — Liefert den Pfad des übergeordneten Verzeichnisses
Aus einer übergebenen Zeichenkette, die den Pfad zu einer Datei oder einem Verzeichnis enthält, gibt diese Funktion den Pfad des Verzeichnisses zurück, welches levels
Ebenen über dem angegebenen liegt.
Hinweis:
dirname() arbeitet nur mit der Eingabezeichenkette und beachtet nicht das eigentliche Dateisystem oder Pfadbestandteile wie etwa "
..
".
Unter Windows geht dirname() von der aktuell eingestellten Codepage aus. Damit diese Funktion also bei Pfaden mit Mehrbytezeichen den korrekten Verzeichnisnamen erkennt, muss die passende Codepage gesetzt sein. Wenn path
Zeichen enthält, die für die aktuelle Codepage ungültig sind, ist das Verhalten von dirname() undefiniert.
Auf anderen Systemen nimmt dirname() an, dass path
in einer ASCII-kompatiblen Kodierung vorliegen muss. Andernfalls ist das Verhalten der Funktion undefiniert.
path
Ein Pfad.
Unter Windows wird sowohl der Slash (/
) als auch der Backslash (\
) als Trennzeichen bei Pfadangaben benutzt. Unter anderen Betriebssystemen hingegen nur der Slash (/
).
levels
Die Anzahl an übergeordneten Verzeichnissen, die aufgestiegen werden soll.
Dies muss eine ganze Zahl größer 0 sein.
Gibt den Pfad eines übergeordneten Verzeichnisses zurück. Sind keine Pfadtrenner in path
, wird ein Punkt ('.
') zurückgegeben, der das aktuelle Verzeichnis angibt. Ansonsten ist die zurückgegebene Zeichenkette der path
, von dem die abschließendene /komponente
entfernt wurde.
Vorsicht ist geboten, wenn diese Funktion in einer Schleife verwendet wird, die die oberste Verzeichnis-Ebene erreichen kann, da dies zu einer Endlosschleife führen kann.
<?php
dirname('.'); // Ergibt '.'.
dirname('/'); // Ergibt '/' unter Windows und '/' auf *nix-Systemen.
dirname('\\'); // Ergibt `\` unter Windows und '.' auf *nix-Systemen.
dirname('C:\\'); // Ergibt 'C:\' unter Windows und '.' auf *nix-Systemen.
?>
Version | Beschreibung |
---|---|
7.0.0 | Der optionale Parameter levels wurde hinzugefügt. |
Beispiel #1 dirname()-Beispiel
<?php
echo dirname("/etc/passwd") . PHP_EOL;
echo dirname("/etc/") . PHP_EOL;
echo dirname(".") . PHP_EOL;
echo dirname("C:\\") . PHP_EOL;
echo dirname("/usr/local/lib", 2);
Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:
/etc / (oder \ unter Windows) . C:\ /usr