basename

basename($path, $suffix)

Gibt den letzten Teil eines Pfads zurück (den Namen einer Datei oder eines Ordners). Mit dem zweiten Parameter entfernt sie die angegebene Endung aus dem Ergebnis.

Parameter

  • $path – ein Pfad zu einer Datei oder eine URL.
  • $suffix – optional, eine Endung, die vom Namen entfernt wird (einschließlich Punkt, wenn Sie ihn angeben).

Beispiele

echo basename("/var/www/bilder/foto.jpg"); // foto.jpg
// ohne Endung
echo basename("/var/www/bilder/foto.jpg", ".jpg"); // foto
// ein Schrägstrich am Ende wird ignoriert
echo basename("/var/www/bilder/"); // bilder
// aus einer URL gibt sie den letzten Teil des Pfads samt Parametern zurück
echo basename("https://www.garth.cz/php/artikel.php?id=5"); // artikel.php?id=5
// ein Dateiname aus einer Eingabe ohne Pfad, das ../ verschwindet
echo basename("../../connect/connection.php"); // connection.php
// die Endung allein wird nicht entfernt, wenn vom Namen nichts übrig bliebe
echo basename("/data/.jpg", ".jpg"); // .jpg

Worauf Sie achten sollten

  • Unter Windows behandelt sie auch den Backslash als Trennzeichen, unter Linux nur den normalen Schrägstrich. Der Pfad „C:\daten\foto.jpg“ gibt auf einem Linux-Server die ganze Zeichenkette zurück.
  • basename() entfernt den Pfad (../) aus einem vom Benutzer gelieferten Namen, allein reicht das aber nicht. Die Datei kann eine gefährliche Endung (.php) haben oder eine vorhandene Datei überschreiben. Sicherer ist ein eigener Name, zum Beispiel nach der ID.
  • Bei einer URL lässt sie die Parameter nach dem Fragezeichen im Namen. Holen Sie den Pfad zuerst mit parse_url() aus der URL.
  • Die Endung vergleicht sie mit Beachtung der Groß- und Kleinschreibung: basename("FOTO.JPG", ".jpg") entfernt sie nicht. Zuverlässiger ist pathinfo().

Verwandte Funktionen:
dirname()
pathinfo()
parse_url()