Backend Development 4 min read

Common PHP Functions for Determining File Types

This article explains several PHP functions—mime_content_type, finfo_file, pathinfo, and getimagesize—used to detect a file's type or MIME information, showing their syntax, examples, and important considerations such as required extensions and version compatibility.

php中文网 Courses
php中文网 Courses
php中文网 Courses
Common PHP Functions for Determining File Types

In PHP, handling files often requires determining their type, such as for image resizing or cropping. This article introduces several commonly used PHP functions for file type detection.

mime_content_type

Before PHP 5.3, the mime_content_type function could be used to retrieve a file's MIME type. Its syntax is:

<code>string mime_content_type ( string $filename )</code>

Example usage:

<code>$filename = 'test.jpg';
$mime_type = mime_content_type($filename);
echo "The MIME type of $filename is: $mime_type";</code>

The function works for many common file types but may return incorrect results for some.

finfo_file

Since PHP 5.3, the finfo_file function (part of the fileinfo extension) can be used to get a file's MIME type. Syntax:

<code>finfo finfo_file ( resource $finfo , string $filename [, int $options = FILEINFO_NONE [, resource $context ]] )</code>

Example:

<code>$finfo = finfo_open(FILEINFO_MIME_TYPE);
$filename = 'test.jpg';
$mime_type = finfo_file($finfo, $filename);
echo "The MIME type of $filename is: $mime_type";</code>

Ensure the fileinfo extension is enabled before using.

pathinfo

The built‑in pathinfo function returns path information, including the file extension. Syntax:

<code>array pathinfo ( string $path [, int $options = PATHINFO_DIRNAME | PATHINFO_BASENAME | PATHINFO_EXTENSION | PATHINFO_FILENAME ] )</code>

Example:

<code>$filename = 'test.jpg';
$info = pathinfo($filename);
echo "The extension of $filename is: " . $info['extension'];</code>

getimagesize

To check whether a file is an image, use getimagesize . Syntax:

<code>array|false getimagesize ( string $filename [, array &$imageinfo ] )</code>

Example:

<code>$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.";
}</code>

This function requires the GD extension to be enabled.

These functions each have advantages and limitations; choose the appropriate one based on your environment and requirements.

PHPgetimagesizePathInfoMIMEfile-typefinfo
php中文网 Courses
Written by

php中文网 Courses

php中文网's platform for the latest courses and technical articles, helping PHP learners advance quickly.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.