2011-07-05 10 views
3

は、私は以下のように、getimagesize機能で画像の幅と高さを取得する:条件はgetimagesize関数がエラーなしで実行されたことを確認するためのIFPHPチェック空でない場合は、非ゼロ

list($width,$height) = getimagesize($source_pic); 

がどのように使用することができます$ widthと$ heightには空でない、ゼロ以外の値がありますか?

答えて

6
if ($size = getimagesize($source_pic)) { 
    list($width,$height) = $size; 
    if($height > 0 && $width > 0) { 
     // do stuff 
    } 
} 
+0

この回答はすべての質問要件に適合しているわけではありません。特に、ゼロ値を検出しません。 –

+0

@ÁlvaroG. Vicario - ありがとう、私の答えを編集 –

3
if ($width === NULL) { 
    //handle error 
} 

そこFALSEを返しgetimagesizeエラーは、配列が、ありませんので、list割り当てはNULLされた変数になります場合。

+0

まだゼロに対してテストする必要があります。マニュアルによると、あなたはそのような価値を得ることができる場合があります。 –

1

これは十分なはずです:

list($width, $height) = getimagesize($source_pic); 
if($width>0 && $height>0){ 
    // Valid image with known size 
} 

それが有効な画像でない場合は、両方の$幅と高さは$ NULLになります。有効な画像だが、PHPが次元を決定できない場合は、0になります。

from the manual

いくつかのフォーマットは、画像を含まないものや 複数の画像を含んでいてもよいです。これらの の場合、getimagesize()は のサイズを正しく決定できる ではない可能性があります。これらの場合、getimagesize()は幅と高さにゼロ を返します。

1
$size = getimagesize('image.jpg'); 
list($height,$width) = getimagesize('image.jpg'); 

if($height>0 && $width>0){ 
    //it comes into if block if and only if both are not null 
} 
関連する問題