引言

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结尾的文件名。

总结