在PHP中,咱们经常需要按照文件的类型来进行处理,例如针对区别类型的照片进行缩放、裁剪等操作,在这种状况下,判断文件类型就显出非常重要。那样,本文将介绍几种常用的判断文件类型的PHP函数。
mime_content_type函数
在PHP5.3之前的版本中,能够运用mime_content_type函数来获取文件的MIME类型。这个函数的语法如下: string mime_content_type ( string $filename
)
该函数接受一个文件名做为参数,返回该文件的MIME类型。例如: $filename = test.jpg
; $mime_type = mime_content_type($filename
); echo "The MIME type of $filename is: $mime_type"
;
这个函数能够判断大部分平常类型的文件,例如照片、音频、视频、文本等等。然则,它并不支持所有的文件类型。在某些状况下,它可能会返回错误的MIME类型。
finfo_file函数
从PHP5.3起始,能够运用finfo_file函数来获取文件的MIME类型。这个函数的语法如下: finfo finfo_file ( resource $finfo , string $filename [, int $options = FILEINFO_NONE [, resource $context
]] )
其中,$filename是需要检测的文件名,而$finfo是由于finfo_open函数返回的文件信息对象。例如: $finfo
= finfo_open(FILEINFO_MIME_TYPE); $filename = test.jpg
; $mime_type = finfo_file($finfo, $filename
); echo "The MIME type of$filename is: $mime_type"
;
需要重视的是,finfo_file函数需要依赖PHP的fileinfo扩展,因此呢在运用之前需要保证该扩展已被启用。
pathinfo函数
pathinfo函数是PHP自带的一个函数,能够用来获取一个文件的路径信息。除了文件的路径和文件名之外,它还能够返回文件的扩展名。这个函数的语法如下: array pathinfo ( string $path [, int $options
= ATHINFO_DIRNAME | ATHINFO_BASENAME | ATHINFO_EXTENSION | ATHINFO_FILENAME ] )
其中,$path是需要解析的文件路径。返回的结果是一个包括路径信息的数组,包含dirname、basename、extension和filename。例如: $filename = test.jpg
; $info = pathinfo($filename
); echo "The extension of$filename is: " . $info[extension
];
getimagesize函数
倘若咱们要判断一个文件是不是为照片,那样能够运用getimagesize函数。这个函数的语法如下: array|false getimagesize ( string $filename [, array &$imageinfo
] )
其中,$filename是需要检测的文件名,$imageinfo是一个可选的数组,用于在获取照片信息时存储额外的数据。倘若getimagesize函数返回false,则说明该文件不是一张照片。例如: $filename = test.jpg
; $image_info= getimagesize($filename
); if ($image_info !== false
) { echo "$filename is an image file."
; } else
{ echo "$filename is not an image file."
;
}
需要重视的是,getimagesize函数需要依赖PHP的GD扩展,因此呢在运用之前需要保证该扩展已被启用。
以上介绍了几种常用的判断文件类型的PHP函数,它们各有优劣,能够按照实质状况选取运用。需要重视的是,在运用这些函数时,因为文件的类型是由于文件标头决定的,因此呢可能会存在某些文件不规范引起判断错误的状况。
|