2009-08-15 11 views
10

誰でも、PHPのgetimagesize()関数から返された3番目の値の可能な結果を​​すべて知っていますか? gif画像に対して、jpg画像用PHPのgetimagesize()はどのような種類のファイルを返しますか?

  • $imageinfo['2'] = 2;pngイメージの
  • $imageinfo['2'] = 3;
  • $imageinfo['2'] = 0;:以下の例では、このコードが返されます。

上記の数値が正しくない可能性がありますが、あなたはそのアイデアを得るでしょう。

私はphp.netや他の場所では、3番目の値について考えられるすべての結果のリストを見つけることができません。

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

答えて

28

これを実行します。あなたはフラッシュSWFを考慮イメージで見ることができ、実際にgetimagesize()は、SWFオブジェクトの幅と高さを読み取ることができたよう

[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 

:私のPHP 5.3のインストールに私は、これらの値を得ました。私には最初に発見したときに好奇心のように思えたので、ここでそれを言及しました。

+0

良い答え、私はあなたのための画像ファイルの種類のフィルタリングを行うコードを含む別の答えを追加しました。 – mjsa

5

このインデックスには、PHPのIMAGETYPE_XXX constantsのいずれかの値が含まれています。そのページの全体のリストが下部に表示されます。そのページはそれぞれの実際のINT値を提供しませんが、必要に応じて値を取得するために少数のページを出力できるはずです。あなたが特定のものを探している場合にも、比較チェックを行うことができます:

the manualを引用
if ($imageinfo[2] == IMAGETYPE_IFF) { 
    // Code here 
} 
+1

は、引用されたPHPのマニュアルページ(http://www.php.net/manual/en/imageことに注意してください.constants.php)は 'IMAGE_JPG'、' IMAGE_GIF'という名前のconstatnsで始まります。これらは正しい定数ではありません。あなたはさらにページの下にあり、 'IMAGETYPE_GIF'、' IMAGETYPE_PNG'などで始まる定数を必要とします。エラーを見つけるために1時間かかりました。 –

2

インデックス2は 画像の種類を示すIMAGETYPE_XXX 定数の1つです。

そして、あなたは、次のIMAGETYPE_* constantsのいずれかの値を返しますgetimagesize GD

1

によって定義されている他の中で、this page ONHこれらの定数を見つけることができます。

print_r(get_defined_constants()); 

をそしてIMAGETYPE_で始まる定数を探します。

1

あなたはインデックスより人間が読めるものに2としてgetimagesize()によって返さ変換値にしたい場合は、この1のような機能を使用して検討してください。

$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]]; 

または類似のもの。

0

上記のみに一定、イメージではなく定数に保存されている整数画像を与える画像定数のページを参照さ。上記のスクリプトは整数を与えていますが、公式のPHPマニュアルページに整数のリストがあります。http://www.php.net/manual/en/function.exif-imagetype.php

3

get_defined_constants()のIMAGETYPEで始まる前述の定数はサポートされているイメージタイプをリストしています。しかし

、あなたはただ、これを実行すると、それはものがサポートされているかを教えてくれます場合:

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>"; 
関連する問題