引言
PHP图片类型识别方法
1. 使用getimagesize()函数
function isImage($imgPath) {
$info = getimagesize($imgPath);
$types = [
IMAGETYPE_GIF,
IMAGETYPE_JPEG,
IMAGETYPE_PNG,
IMAGETYPE_BMP,
IMAGETYPE_SWF,
// ... 其他图片类型
];
return in_array($info[2], $types);
}
2. 使用exif_imagetype()函数
function isImage($imgPath) {
return exif_imagetype($imgPath) !== false;
}
3. 使用文件扩展名
function isImage($imgPath) {
$fileExt = pathinfo($imgPath, PATHINFO_EXTENSION);
$validExtensions = ['gif', 'jpg', 'jpeg', 'png', 'bmp', 'swf'];
return in_array(strtolower($fileExt), $validExtensions);
}
在这个例子中,我们使用pathinfo()函数获取文件扩展名,并检查它是否在预定义的有效扩展名列表中。
正则表达式在图片类型识别中的应用
function isImage($imgPath) {
$pattern = '/\.(jpg|jpeg|gif|png|bmp|swf)$/';
return preg_match($pattern, $imgPath) === 1;
}
在这个例子中,我们定义了一个正则表达式/\.jpg|jpeg|gif|png|bmp|swf\$/,它匹配以.jpg、.jpeg、.gif、.png、.bmp或.swf结尾的文件名。