PHP 5.2 und FileInfo – NOT!

Nachdem ich feststellen musste, dass 1&1 auf seinen Webspaces nur PHP 5.2.17 (veröffentlicht im Januar 2011 und seit März 2011 nicht mehr unterstützt!) bereitstellt, bin ich damit auf einige Probleme gestoßen. Konkret ging es um die Funktionalitäten aus dem FileInfo-Modul. Seit PHP 5.3 ist dies der empfohlene und eingebaute Weg, um Informationen über den Typ einer Datei herauszufinden. Genutzt habe ich das um sicherzustellen, dass eine Datei auch wirklich ein Bild ist, das anschließend weiterverarbeitet wird.

Wie gesagt unterstützt PHP 5.2 diese Funktionen nicht direkt. Es gibt allerdings eine PECL-Erweiterung, mit der man dies nachrüsten kann. Das Problem hierbei ist jedoch, dass zur Installation ein direkter Zugang zum PHP-System notwendig ist, zum Beispiel per SSH. Da dies in diesem Fall nicht möglich ist, entfällt dies.

Die nächste Möglichkeit, den Mime-Type einer Datei unter PHP < 5.3 zu bestimmen wäre mit der Funktion mime_content_type. Ausprobiert – aber nein, funktioniert natürlich auch nicht! Warum? Nun ja, dafür wird die Erweiterung mime_magic benötigt – und die ist bei 1&1 natürlich auch nicht installiert!

Also bleibt noch die schöne Möglichkeit, das ganze über schöne try-catch-Blöcke zu steuern. Womit man beim Anti-Pattern des „Control Flow with Exceptions“ ist. Großartig!

Danke 1&1 dass ihr auch über ein Jahr nach Ende der Unterstützung für PHP 5.2 noch immer nicht auf Version 5.3 aktualisiert habt! Argh!