2011-07-05 104 views
3

我得到的圖像的寬度和高度與和getimagesize功能,如下圖所示:PHP檢查,如果非空,非零

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

如何使用IF條件來檢查和getimagesize函數執行沒有錯誤$ 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 
} 

如果有一個錯誤getimagesize回報FALSE,而不是一個數組,所以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 
}