Wie erhalte ich die Dateierweiterung in PHP? Zuverlässige Methoden und Fallstricke
Hallo zusammen! Ich bin ein PHP-Anfänger und bin auf eine scheinbar einfache Aufgabe gestoßen: Ich muss die Dateierweiterung aus dem Dateinamen extrahieren. Ich habe eine Variable wie `$filename = "document.pdf"` oder `$path = "/var/www/uploads/image.jpg"`. Ich muss "pdf" oder "jpg" extrahieren.
Ich habe die einfachste Methode ausprobiert — explode mit Punkt:
```php
$filename = "document.pdf";
$parts = explode('.', $filename);
$ext = end($parts);
echo $ext; // pdf
```
Aber sofort traten Probleme auf. Erstens, was ist, wenn der Dateiname mehrere Punkte enthält, z.B. `my.file.name.txt`? Mein Code gibt "txt" aus, was zwar richtig erscheint, aber vielleicht ist das nicht das, was benötigt wird? Zweitens, was ist, wenn es sich um einen vollständigen Pfad handelt und nicht nur um einen Namen? Z.B. `/home/user/file.tar.gz` — explode teilt alles nach Schrägstrichen und Punkten auf, und das Ergebnis könnte unerwartet sein. Drittens, was ist mit Dateien ohne Erweiterung, wie `Makefile` oder `.htaccess`? Mein Code gibt "htaccess" zurück, aber das ist im klassischen Sinne keine Erweiterung.
Ich habe gehört, dass es eine eingebaute