Karl: Bestandteile des Dateipfades

Beitrag lesen

Moin!

Offensichtlich enthält der Dateiname die Endung. Dann kann ich doch nicht behaupten

basename --  Extrahiert den Namen einer Datei aus einer vollständigen Pfadangabe

der Dateiname ohne das Suffix ist der Dateiname:)

Moderne Betriebssysteme trennen den Dateinamen nicht in "Endung" und "das davor" auf. Der gesamte String mit Punkt von vorn bis hinten ist der Dateiname.

Und basename() ist auch keine Dateinamensfunktion, sondern eine reine Stringfunktion, d.h. der ihr übergebene "Pfad mit Dateinamen" wird keinesfalls auf Existenz im Dateisystem geprüft, sondern trennt lediglich an Zeichen, die in typischen Dateisystemen eine besondere Bedeutung haben, den String auf und ermitteln eben den "Dateinamen". Und optional entfernt es auch noch das letzte Stückchen des Namens, wenn dieser "passt".

Aber wie gesagt: Reine Stringfunktion. Findet das erste Auftreten des Schrägstrichs von hinten und gibt alles danach zurück (so grob). Das muß aber keine existierende Datei sein, das kann auch ein Verzeichnisname sein.

Also im Prinzip

substr($path, strrpos($path, "/")+1) (mal abgesehen von der Möglichkeit, noch ein Suffix zu übergeben)

Mir ist schon klar, was Du schreibst. Das wußte ich auch schon. Aber findet denn keiner außer mir es sinnvoll, den Teil vor .endung zu benennen? Ich glaube, ich geb´s auf. Wenn es eine Bezeichnung gäbe, wäre die schon genannt worden. Ist aber seltsam, wenn es tatsächlich keine gibt. Immerhin wird das Suffix ja als Endung bezeichnet. Warum nicht auch der Teil zuvor?