2009-08-15 8 views
10

Kennt jemand alle möglichen Ergebnisse für den dritten Wert, der von PHPs getimagesize() - Funktion zurückgegeben wird? Beispiel dieser Code unten zurückkehren:Welche Art von Dateitypen gibt PHP getimagesize() zurück?

  • $imageinfo['2'] = 2; für ein jpg Bild,
  • $imageinfo['2'] = 3; für ein png Bild,
  • $imageinfo['2'] = 0; für ein gif Bild.

Die Zahlen sind möglicherweise oben nicht korrekt, aber Sie erhalten die Idee.

Ich kann nicht auf php.net oder anderswo eine Liste aller möglichen Ergebnisse für den 3. Wert finden.

$imageinfo = getimagesize($imageurl); 
$image_type = $imageinfo['2']; 

Antwort

28

diese Execute:

print_r(get_defined_constants()); 

Und dann für Konstanten mit IMAGETYPE_ voran aussehen. Auf meinem PHP 5.3 Installation habe ich diese Werte:

[IMAGETYPE_GIF] => 1 
[IMAGETYPE_JPEG] => 2 
[IMAGETYPE_PNG] => 3 
[IMAGETYPE_SWF] => 4 
[IMAGETYPE_PSD] => 5 
[IMAGETYPE_BMP] => 6 
[IMAGETYPE_TIFF_II] => 7 
[IMAGETYPE_TIFF_MM] => 8 
[IMAGETYPE_JPC] => 9 
[IMAGETYPE_JP2] => 10 
[IMAGETYPE_JPX] => 11 
[IMAGETYPE_JB2] => 12 
[IMAGETYPE_SWC] => 13 
[IMAGETYPE_IFF] => 14 
[IMAGETYPE_WBMP] => 15 
[IMAGETYPE_JPEG2000] => 9 
[IMAGETYPE_XBM] => 16 
[IMAGETYPE_ICO] => 17 
[IMAGETYPE_UNKNOWN] => 0 
[IMAGETYPE_COUNT] => 18 

Wie Sie Flash SWF sind als Bilder sehen können, und tatsächlich getimagesize() ist in der Lage, die Breite und die Höhe eines SWF-Objekt zu lesen. Für mich war es eine Kuriosität, als ich es zum ersten Mal entdeckte, deshalb habe ich es hier erwähnt.

+0

Gute Antwort, ich habe eine weitere Antwort hinzugefügt, die einen Code enthält, der das Filtern von Bilddateitypen für Sie übernimmt. – mjsa

5

Dieser Index enthält den Wert eines von PHP IMAGETYPE_XXX constants. Eine ganze Liste von ihnen kann auf dieser Seite nach unten gefunden werden. Diese Seite bietet nicht den tatsächlichen INT-Wert von jedem, aber Sie sollten in der Lage sein, einige wenige zu drucken, um die Werte nach Bedarf zu erhalten. Sie könnten auch eine Vergleichsprüfung tun, wenn Sie für eine spezifische Suche:

if ($imageinfo[2] == IMAGETYPE_IFF) { 
    // Code here 
} 
+1

ACHTUNG, dass die zitierte PHP-Handbuch Seite (http://www.php.net/manual/en/image .constants.php) beginnt mit Konstanten namens 'IMAGE_JPG',' IMAGE_GIF'. Dies sind NICHT die richtigen Konstanten. Sie wollen Konstanten, die weiter unten auf der Seite sind und mit 'IMAGETYPE_GIF',' IMAGETYPE_PNG' und so weiter beginnen. Ich brauchte eine Stunde, um den Fehler zu finden. –

2

Zitiert the manual:

Index 2 ist eine der IMAGETYPE_XXX Konstanten, die den Typ des Bild.

Und Sie können diese Konstanten ONH this page, unter den anderen definiert durch GD

1

Wenn Sie wollen Wert von getimagesize() als Index 2 in etwas mehr Menschen lesbaren zurück konvertieren, können Sie mit einer Funktion wie diese betrachten:

$imageTypeArray = array 
(
    0=>'UNKNOWN', 
    1=>'GIF', 
    2=>'JPEG', 
    3=>'PNG', 
    4=>'SWF', 
    5=>'PSD', 
    6=>'BMP', 
    7=>'TIFF_II', 
    8=>'TIFF_MM', 
    9=>'JPC', 
    10=>'JP2', 
    11=>'JPX', 
    12=>'JB2', 
    13=>'SWC', 
    14=>'IFF', 
    15=>'WBMP', 
    16=>'XBM', 
    17=>'ICO', 
    18=>'COUNT' 
); 

$size = getimagesize($filename); 

$size[2] = $imageTypeArray[$size[2]]; 

oder etwas ähnliches.

0

Die oben genannten Seiten auf dem Bild Konstanten geben nur dem Bild konstant Namen, nicht die ganzen Zahlen in der Bild Konstanten gespeichert.Die obigen Skripte geben die Ganzzahlen an, aber ich fand eine Liste der Ganzzahlen auf einer offiziellen PHP-Handbuchseite unter http://www.php.net/manual/en/function.exif-imagetype.php

3

Wie bereits erwähnt, führen Konstanten, die mit IMAGETYPE in get_defined_constants() beginnen, unterstützte Bildtypen auf.

Wenn Sie jedoch diese nur laufen und es wird Ihnen sagen, welche unterstützt werden:

function imageTypes() { 

    $imageTypes = array(); 

    foreach(get_defined_constants() as $key => $value){ 
     $keyStart = explode('_', $key); 
     if($keyStart[0] == 'IMAGETYPE'){ 
      array_push($imageTypes, $key); 
     } 
    } 
    return $imageTypes; 
} 

echo "<pre>"; 
var_dump(imageTypes()); 
echo "</pre>"; 
Verwandte Themen