realpath

(PHP 4, PHP 5, PHP 7)

realpathLöst einen Pfad in einen absoluten und eindeutigen auf

Beschreibung

realpath ( string $path ) : string

realpath() löst alle symbolischen Verweise, /./, /../ und mehrere aufeinanderfolgende / Zeichen, die in path enthalten sind, auf und gibt den so entstehenden absoluten Pfad zurück.

Parameter-Liste

path

Der Pfad, der aufgelöst werden soll.

Hinweis:

Der Pfad muss angegeben werden, kann allerdings auch ein leerer String sein, in diesem Fall wird dann das aktuelle Verzeichnis benutzt.

Rückgabewerte

Gibt bei Erfolg den eindeutigen und absoluten Pfadnamen zurück. Dieser wird keine symbolischen Links, /./ oder /../ mehr enthalten. Abschließende Trennzeichen wie \ und / werden ebenfalls entfernt.

realpath() gibt FALSE zurück, wenn ein Fehler auftritt, beispielsweise wenn die Datei nicht existiert.

Hinweis:

Das ausführende Script muss alle Verzeichnisse im Pfad öffnen können (auf unixoiden Systemen wäre das das "execute" Recht). Ist dies nicht der Fall, gibt realpath() FALSE zurück.

Hinweis:

Bei Dateisystemen, bei denen Groß-/Kleinschreibung keine Rolle spielt, kann realpath() die Schreibweise kanonisieren, oder auch nicht.

Hinweis:

Die Funktion realpath() funktioniert nicht für Dateien in einem Phar, da solche Pfade virtuelle Pfade sind, aber keine realen Pfade.

Hinweis: Weil PHPs Integer Typ vorzeichenbehaftet ist und viele Platformen 32bit Integer verwenden, können einige Dateisystem-Funktionen für Dateien größer als 2GB unerwartete Ergebnisse liefern.

Changelog

Version Beschreibung
5.3.0 Vor dieser Version schlug realpath() auf BSD Systemen nicht fehl, wenn nur die letzte path Komponente nicht existierte. Jetzt schlägt realpath() auch in diesem Fall fehl.
5.2.1 Vor dieser Version gab realpath() FALSE zurück, wenn path eine leere Zeichenkette oder NULL ist.

Beispiele

Beispiel #1 realpath()

<?php
chdir
('/var/www/');
echo 
realpath('./../../etc/passwd') . PHP_EOL;


echo 
realpath('/tmp/') . PHP_EOL;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

/etc/passwd
/tmp

Beispiel #2 realpath() auf Windows

Unter Windows wandelt realpath() Unix-artige Pfade in gültige Windows-Pfade um:

<?php
echo realpath('/windows/system32'), PHP_EOL;

echo 
realpath('C:\Program Files\\'), PHP_EOL;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

C:\WINDOWS\System32
C:\Program Files

Siehe auch

  • basename() - Gibt letzten Namensteil einer Pfadangabe zurück
  • dirname() - Gibt den Pfad des übergeordneten Verzeichnisses zurück
  • pathinfo() - Liefert Informationen über einen Dateipfad