Dateiendung ermitteln

Robert Steichele

Erfahrenes Mitglied
Gibt es eine Funktion, mit der man die Dateiendung beim hochladen ermitteln kann? Bei Bildern weiß ich das, sollte aber auch noch doc, xls, ppt und pdf ermitteln können.
Ist dies überhaupt möglich?
 
Vielleicht gibt es eine Funktion dazu, such mal auf php.net
Aber ansonsten kannst du auch per substr() die letzten 3 Zeichen auslesen, die ja normalerweise die Dateiendung sind.
Falls es Dateiendungen geben sollte, die länger sind, würde ich das nach "Punkt" (.) exploden und das letzte Element als Dateiendung nehmen.
Oder wie gesagt einfach eine Funktion von PHP nutzen, falls es die gibt.
 
Im Grunde kannst Du da mit explode() arbeiten. In der Regel ist das letzte Element des resultierenden Arrays die Dateiendung. Das Problem ist nur, dass es auch schonmal doppelte Endungen wie z.B. .tar.gz oder .tar.bz2 gibt. Diese sind aber eher selten und dann eigentlich auch eher im Linux-Umfeld anzutreffen. Aus der Windows-Welt ist mir dazu jetzt kein Beispiel bekannt (auch wenn man unter Windows .tar.gz und .tar.bz2 auch entpacken kann).
 
Mach ein explode() deiner Datei oder deines Pfades, zähle mit count() die Einträge des erzeugten Arrays -1 und dann das letzte Element ist deine Endung. Und wenn du weisst, dass du mehr als 1 Endung hast, dann könntest du z.B. auch das vorletzte Arrayelement auf seine Länge hin überprüfen. Ist die Länge > 3 dann ist es eher unwahrscheinlich, dass es sich dabei um eine "Vorendung" handelt. Könntest natürlich auch eine Art "Whitelist" für erlaubte Endungen und Doppelendungen entwefen, die dann zum Überprüfen hergenommen wird.

Tseng
 
Zurück