Dateiendung in PHP ermitteln: Best Practices 2025

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Dateiendung in PHP ermitteln: Vom Anfänger zum Profi im Jahr 2025

\n\n

Hast du dich schon einmal gefragt, wie oft ein PHP-Entwickler täglich die Dateiendung extrahieren muss? Dutzende, wenn nicht hunderte Male. Beim Hochladen von Profilbildern, der Verarbeitung von Dokumenten oder der Validierung von Bildern – überall musst du wissen, was für ein Dateityp bei dir ankommt: .jpg, .pdf oder ein hinterhältiges .php.jpg.

\n\n

Die Frage "How can I get a file's extension in PHP?" ist eine der beliebtesten auf Stack Overflow. Und das aus gutem Grund. Was könnte einfacher sein? Aber der Teufel steckt, wie immer, im Detail. Im Jahr 2025 haben wir nicht nur die bewährten pathinfo() und explode(), sondern auch neue Möglichkeiten in PHP 8.4, die den Code sauberer und sicherer machen.

\n\n

Lass uns 5 praktische Methoden, ihre Vor- und Nachteile sowie die ideale Einsatzmöglichkeit durchgehen. Los geht's!

\n\n

1. Der Klassiker: pathinfo() – der König aller Methoden

\n\n

Die beliebteste und korrekteste Methode ist die Funktion pathinfo(). Sie existiert seit PHP 4 und ist bis heute aktuell. Warum? Weil sie intelligent ist: Sie berücksichtigt systembedingte Pfadtrennzeichen, funktioniert mit URLs und scheitert nicht an Punkten im Dateinamen.

\n\n
<?php\n$file = 'document.report.pdf';\n$extension = pathinfo($file, PATHINFO_EXTENSION);\n// Ergebnis: 'pdf'\n?>
\n\n

Es gibt jedoch eine Besonderheit. Wenn die Datei keine Endung hat, gibt pathinfo() einen leeren String zurück. Nicht null, nicht false – sondern einen leeren String. Das ist wichtig für strikte Prüfungen.

\n\n
<?php\n$file = 'README';\n$ext = pathinfo($file, PATHINFO_EXTENSION);\nvar_dump($ext); // string(0) ""\n?>
\n\n

Wann verwenden: Immer, wenn du schnell und zuverlässig die Dateiendung benötigst. Das ist der Industriestandard.

\n\n

2. Die altbewährte Methode: explode() und strrpos()

\n\n

Einige erfahrene Entwickzer bevorzugen die manuelle String-Analyse. Die Idee ist einfach: Finde den letzten Punkt und nimm alles, was danach kommt.

\n\n
<?php\n$file = 'image.jpg';\n$parts = explode('.', $file);\n$extension = end($parts);\n// Ergebnis: 'jpg'\n?>
\n\n

Das funktioniert im Prinzip. Aber es gibt einen Haken: explode() erzeugt ein Array, und end() verschiebt den internen Array-Zeiger. Nicht kritisch, aber nicht elegant.

\n\n

Eine performantere Variante ist strrpos() + substr():

\n\n
<?php\n$file = 'archive.tar.gz';\n$pos = strrpos($file, '.');\n$extension = $pos !== false ? substr($file, $pos + 1) : '';\n// Ergebnis: 'gz'\n?>
\n\n

Beachte: strrpos() sucht nach dem letzten Vorkommen des Punktes. Das ist korrekt – wir wollen gz, nicht tar.gz.

\n\n

Wann verwenden: Wenn pathinfo() nicht verfügbar ist (exotische Fälle) oder du mehr Kontrolle über die Logik benötigst.

\n\n

3. Die Neuerung von 2025: str_contains() und str_starts_with()

\n\n

In PHP 8.0 wurden str_contains() und str_starts_with() eingeführt, und in PHP 8.4 gibt es eine verbesserte Unterstützung für Multibyte-Zeichenketten. Das eröffnet neue, elegante Möglichkeiten.

\n\n
<?php\n$file = 'photo.2025.jpg';\n\nif (str_contains($file, '.')) {\n    $extension = substr($file, strrpos($file, '.') + 1);\n} else {\n    $extension = '';\n}\n// Ergebnis: 'jpg'\n?>
\n\n

Sieht das schön aus? Nicht wirklich. Aber wenn du prüfen möchtest, ob eine Datei ein Bild ist, ist str_ends_with() dein Freund:

\n\n
<?php\n$file = 'avatar.png';\n$isImage = str_ends_with($file, '.png') || str_ends_with($file, '.jpg');\n// true\n?>
\n\n

Wann verwenden: Für schnelle Prüfungen auf bestimmte Endungen, ohne die gesamte Endung extrahieren zu müssen.

\n\n

4. Reguläre Ausdrücke: Wenn du alles auf einmal brauchst

\n\n

Manchmal reicht eine einzelne Endung nicht aus. Du musst zum Beispiel prüfen, ob eine Datei ein sicheres Bild ist, und gleichzeitig den Namen ohne Endung extrahieren. Hier kom

Blogs

Buchempfehlungen