PHP判斷檔案是否為圖片的方法
廢話不多說,主要是針對於一些更改檔案字尾為.jpg
等圖片的,還有就是改成.php.jpg
等等,下面提供三種方法;
方法一(推薦):
使用 exif_imagetype
函式,該函式用於判斷一個影像的型別。函式讀取一個影像的第一個位元組並檢查其簽名,如果發現了恰當的簽名則返回一個對應的常量,否則返回 FALSE。返回值和 getimagesize() 返回的陣列中的索引 2 (方法二的 $info['2']
)的值是一樣的,但該函式要快得多。
$path = '圖片地址';
$mimetype = exif_imagetype($path);
if ($mimetype == IMAGETYPE_GIF || $mimetype == IMAGETYPE_JPEG || $mimetype == IMAGETYPE_PNG || $mimetype == IMAGETYPE_BMP){
echo "是圖片";
}else {
echo "不是圖片";
}
該函式的返回值常量定義如下
IMAGETYPE_GIF
IMAGETYPE_JPEG
IMAGETYPE_PNG
IMAGETYPE_SWF
IMAGETYPE_PSD
IMAGETYPE_BMP
IMAGETYPE_TIFF_II(Intel 位元組順序)
IMAGETYPE_TIFF_MM(Motorola 位元組順序)
IMAGETYPE_JPC
IMAGETYPE_JP2
IMAGETYPE_JPX
IMAGETYPE_JB2
IMAGETYPE_SWC
IMAGETYPE_IFF
IMAGETYPE_WBMP
IMAGETYPE_XBM
方法二:
getimagesize
函式獲取圖片資訊,然後進行判斷。
$path = '圖片地址';
function isImage($imgPath){
$types = '.gif|.jpeg|.png|.bmp'; //定義檢查的圖片型別
if(file_exists($imgPath)){
if($info = getimagesize($imgPath)) return 0;
$ext = image_type_to_extension($info['2']);
return stripos($types, $ext);
}else {
return false;
}
}
if(isImage($path)!==false){
echo '是圖片';
}else {
echo '不是圖片';
}
方法三:
讀取圖片的前 2 個位元組,然後判斷是不是圖片
function isImage($imgPath){
$file = fopen($imgPath, "rb");
$bin = fread($file, 2); // 只讀2位元組
fclose($file);
// 標識前兩個字元按照,c格式,陣列索引chars1、chars2
$strInfo = unpack("C2chars", $bin);
$typeCode = intval($strInfo['chars1'].$strInfo['chars2']);
$fileType = '';
if($typeCode == 255216 /*jpg*/ || $typeCode == 7173 /*gif*/ || $typeCode == 13780 /*png*/) {
return $typeCode;
}else {
return false;
}
}
if(isImage($path)!==false){
echo '是圖片';
}else {
echo '不是圖片';
}
以上方法均已測試。
相關文章
- python如何判斷圖片是否為空Python
- PHP 判斷陣列是否為空的幾種方法PHP陣列
- PHP 判斷陣列是否為空的5大方法PHP陣列
- ios判斷檔案或圖片的型別iOS型別
- Python 判斷檔案是否存在的三種方法Python
- Python判斷物件是否為檔案物件(file object)的三種方法Python物件Object
- 判斷img圖片是否載入成功
- golang判斷檔案是否存在Golang
- vc判斷檔案是否存在
- postgresql判斷是否為數字的方法SQL
- php中判斷變數是否為空PHP變數
- python 判斷檔案是否存在Python
- Node判斷檔案是否連結
- JS判斷物件是否為空物件的方法JS物件
- java判斷檔案是否存在並建立檔案Java
- js如何判斷指定的檔案是否存在JS
- 正則判斷MIME 型別是否是圖片型別
- 利用js判斷檔案是否為utf-8編碼JS
- C#之判斷確定檔案是否為程式集C#
- 判斷excel檔案是否被開啟Excel
- 判斷是否為陣列的 JavaScript 方法總結陣列JavaScript
- C#上傳檔案圖片怎麼判斷格式C#
- PHP 判斷是否包含某字串PHP字串
- javascript如何判斷一個圖片是否載入完成JavaScript
- js如何判斷<img>圖片是否載入完畢JS
- js如何判斷img圖片是否載入完畢JS
- php下利用curl判斷遠端檔案是否存在的實現程式碼PHP
- 判斷字串是否為空字串
- jquery怎麼樣判斷檔案是否存在jQuery
- C# 判斷遠端檔案是否存在C#
- python判斷檔案是否存在等操作Python
- shell 判斷檔案或路徑是否存在
- C語言判斷檔案是否存在,判斷檔案可讀可寫可執行C語言
- Javascript-判斷是否為陣列的5種方法JavaScript陣列
- 如何判斷一個img圖片是否載入完畢
- php判斷字串A是否含有字串BPHP字串
- 如何判斷js檔案是否載入完畢JS
- 判斷檔案中是否存在中文字元字元