phpbar.de logo

Mailinglisten-Archive

[php] isset

[php] isset

Guido Haeger GH-lists_(at)_ecora.de
Tue, 15 Aug 2000 13:03:12 +0200


Daniel Jänecke schrieb

> ich würde den Bild-Typ nicht über die File-Endung, sondern über
> den Header feststellen; der steht nach dem Upload in $userfile_type
> und ist für gif und jpg halt entweder image/gif oder image/pjpeg. Ist
> einfach eindeutiger als die Endung, da hier der tatsächliche Typ
> berücksichtigt wird...

Das ist nicht richtig. Die zuverlässigste Möglichkeit, mit
PHP-Standard-Funktionen zwischen GIF- und JPEG-Grafiken zu
unterscheiden, ist IMHO die Verwendung von GetImageSize().

GetImageSize() ermittelt den Dateityp (GIF, JPEG, PNG oder ggf. SWF)
unabhängig von manipulierbaren Extensions und Headern. Es liest die
ersten paar Bytes der Grafik-Datei und vergleich diese mit bestimmten
Mustern:

aus image.c

/* file type markers */
const char php3_sig_gif[3] =
{'G', 'I', 'F'};
const char php3_sig_jpg[3] =
{(char) 0xff, (char) 0xd8, (char) 0xff};
const char php3_sig_png[8] =
{(char) 0x89, (char) 0x50, (char) 0x4e,
 (char) 0x47, (char) 0x0d, (char) 0x0a,
 (char) 0x1a, (char) 0x0a};

und bitte lies learn.to/quote (auch für Deine Newsgroup-Postings).

Guido Haeger





php::bar PHP Wiki   -   Listenarchive