Größe von Bildern schnell ermitteln

Etwas schnelleres als getimagesize() wirst du kaum finden. Hab mir mal den Sourcecode der Funktion angesehen (Beispiel png):

- Datei wird als Stream geöffnet
- Cursor wird im Stream auf Byte 8 gesetzt
- 9 Bytes werden gelesen
- die ersten 4 Byte sind die Breite
- die zweiten 4 Byte sind die Höhe
- letztes Byte sind Angaben über Pixeltiefe, Color-Informationen, Kompression, Filter und Interlacing

Schneller kann man es kaum machen.
 
Du kannst nur die Image-Src-Nodes auslesen. Mehr geht mit einem Parser da erst mal nicht. Das ist auch nicht notwendig. getimagesize() liefert false, wenn das Bild nicht analysiert werden konnte. Der schnellste Vorgang ist also parsen -> über die Ergebnisse loopen -> getimagesize() rufen und prüfen, was da zurück kommt.
 
Ja aber ich bin noch in der Entwicklung dieses Scripts und brauche den Debugger also Error auf _E_ALL und damit gibts dann halt ne Fehlermeldung und das Skript funktioniert nicht, weil es als JSON geparst wird.
 
Dann bau halt vor dem Loop das hier ein:

PHP:
ini_set('display_errors', 0);
ini_set('log_errors', 1);

In einem PHP-Script, was als Ajax-Backend dient, liefert man die Fehlermeldungen ohnehin entweder über Response an den Client oder loggt sie in eine Datei - was professioneller ist - und liefert eine Fehler-Response.

Das kann man auch während der Entwicklung schon machen. Ist eh besser, dann hat man das Logging-Verhalten für den "produktiven" Einsatz auch gleich getestet.
 
Normalerweise ins Log des Webservers. Beim Apachen dürfte das im Installationsordner unter logs/error.log liegen. Unter Linux ists in der Regel /var/log/(apache2|httpd)/error.log.
 
Zurück