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
- Python判斷物件是否為檔案物件(file object)的三種方法Python物件Object
- golang判斷檔案是否存在Golang
- python 判斷檔案是否存在Python
- 判斷img圖片是否載入成功
- postgresql判斷是否為數字的方法SQL
- JS判斷物件是否為空物件的方法JS物件
- 利用js判斷檔案是否為utf-8編碼JS
- 正則判斷MIME 型別是否是圖片型別
- php下利用curl判斷遠端檔案是否存在的實現程式碼PHP
- 判斷是否為陣列的 JavaScript 方法總結陣列JavaScript
- C語言判斷檔案是否存在,判斷檔案可讀可寫可執行C語言
- jquery怎麼樣判斷檔案是否存在jQuery
- Javascript-判斷是否為陣列的5種方法JavaScript陣列
- 判斷字串是否為空字串
- python 判斷是否為中文Python
- python判斷是否為listPython
- VBA判斷指定的資料夾或檔案是否存在
- JavaScript判斷字串是否為空JavaScript字串
- js判斷物件是否為空JS物件
- java判斷物件是否為空Java物件
- Delphi Variant 判斷是否為空
- mysql如何判斷是否為空MySql
- js判斷字串是否為空JS字串
- java判斷字串是否為空Java字串
- 判斷Linux系統是否被黑的方法Linux
- 判斷物件是否為空物件的方式物件
- PHP判斷電子郵件是否正確的簡單方法介紹PHP
- Python中判斷是否為數字字串的方法是什麼?Python字串
- Java技巧分享:判斷字串是否為空常的三種方法Java字串
- 判斷是否是陣列的幾種方法陣列
- PHP 判斷一個字元是否在字串中PHP字元字串
- PHP判斷一個字串是否包含亂碼PHP字串
- 如何判斷 JavaScript 物件是否為空?JavaScript物件
- C++判斷是否為閏年C++
- 判斷一個物件是否為空物件,判斷一個物件中是否有空值物件
- 帝國CMS利用PHP判斷當前頁面是否為首頁PHP
- 判斷是否有檔案並設定理性,上傳到cos