类别:FRONTEND / 前端 / 日期:2022-07-22 / 浏览:934 / 评论:0

    图片是指由图形、图像等构成的平面媒体。图片的格式很多,但总体上可以分为点阵图和矢量图两大类,我们常用BMP、JPG等格式都是点阵图形,而SWF、CDR、AI等格式的图形属于矢量图形。

php判断文件是否为图片  php 图片 判断 字节 函数 第1张

    方法一(推荐):

    使用 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 '不是图片';
}

赞助

感谢您的打赏~

打开支付宝扫一扫,即可进行扫码打赏哦~

版权声明 : 本文未使用任何知识共享协议授权,您可以任何形式自由转载或使用 / Article Is Not Licensed Under Any Creative Commons License, And You May Freely Reprint Or Use It In Any Form

 可能感兴趣的文章

伤心叹戈

评论区

发表评论 / 取消回复

必填

选填

选填

◎欢迎讨论,请在这里发表您的看法及观点。

近期评论