PHP Auflösung eines JPGs in einem ZIP ermitteln

WulfmanGER

Commander
Registriert
Juli 2005
Beiträge
2.219
Hallo zusammen,

ein kleines Problem - ich benötige von einem bestimmten JPG in diesem ZIP die Auflösung.

Ich habe ZIPs mit div. JPGs drinnen. In manchen ZIPs sind dummerweise Verzeichnisse enthalten und da verschluckt sich mein Vorhaben.

Das ZIP ist geöffnet (ich habe bereits Informationen aus dem ZIP mit PHP extrahiert). Jetzt hab ich zwei Ansätze dank Meister Google gefunden.

Ich habe 2 Dateien in den ZIP:
1) blabla blablbab & blabla/bla blubb (123)/bla blu - abc.jpg
2) test.txt
(so von php ausgelesen - stimmt alles)

- Ansatz 1-
Code:
$file_name = "test.txt";
$zip->extractTo('z:/Webserver/PHP/', $file_name);
=> klappt

Code:
$file_name = "blabla blablbab & blabla/bla blubb (123)/bla blu - abc.jpg"
$zip->extractTo('z:/Webserver/PHP/', $file_name);
=> klappt nicht. Vermutlich: in $file_name ist ein Verzeichnis enthalten (was mich auch stört!) und/oder die Leerschritte/&

Mit diesem Ansatz könnte ich das File öffnen und mit getimagesize die Auflösung auslesen. Danach das File löschen. Am besten wäre ein Extrahieren OHNE Verzeichnis.

-Ansatz 2-
Code:
$image = $zip->getFromName($file_name);
list($width, $height) = getimagesize($image);
=> Warning: : failed to open stream: No such file or directory in 2 [die list-Zeile]

Hier greife ich wohl "Live" in das ZIP ein und lese aus. Exakt so hab ich den Aufruf in Google gefunden - aber er klappt nicht: Ich vermute auch hier: wegen dem Verzeichnis, den Leerschritten und/oder den &.

Ich möchte NUR von diesem einen jpg die Auflösung auslesen. In der Regel sind keine Verzeichnisse in den ZIPs enthalten - wohl aber Leerschritte und & im Dateinamen - das relativ normal.

Wie könnte ich das Lösen?

Danke schon mal
Wulfman
 
hab nur das geändert: $size = getimagesizefromstring($image_string);
Mit $size[0] bekomme ich nun die Breite, mit 1 die Höhe - Perfekt ;)

DANKE!!
 
Wenn du list() verwendest, wie in deinem Beispiel oben, dann brauchste nicht $size[0] und $size[1] verwenden. :)

PHP:
list($width, $height) = getimagesizefromstring($image_string);
 
Zurück
Oben