PHP Classes

PHP Detect File Type: Identify files via MIME type and file signatures

Recommend this page to a friend!
  Info   View files View files (8)   DownloadInstall with Composer Download .zip   Reputation   Support forum (2)   Blog    
Ratings Unique User Downloads Download Rankings
StarStarStarStar 70%Total: 361 All time: 6,901 This week: 71Up
Version License PHP version Categories
file-identifier 0.28GNU General Publi...5.4PHP 5, Files and Folders


This class can identify files via MIME type and file signatures.

It can take the path of a given file and read the beginning of its contents to detect the type of file based on recognizing signatures of well known file types.

The class can also detect the associated MIME type using the PHP finfo extension.

Picture of Martin Latter
  Performance   Level  
Name: Martin Latter <contact>
Classes: 8 packages by
Country: United Kingdom
Age: ???
All time rank: 130060 in United Kingdom
Week rank: 52 Up3 in United Kingdom Up
Innovation award
Innovation award
Nominee: 5x


File Identifier

Identify a file through MIME type and file signature detection.


Detect a file's type through MIME type information and file signature (header) bytes.

(File extensions are ignored.)


*nix systems have the file command, which is a powerful file identifier, and callable from PHP's shell functions.

Nevertheless, this command is not always available.

The main uses of File Identifier are:

  • For \nix servers where PHP shell functions are disabled inphp.ini* ( `disable_functions=` )
  • PHP running on Windows, where no `file` command natively exists
  • When older versions of `file` (e.g. v. 5.09) are installed on the \nix server, and which do not recognise some files such as.gpg*
  • Where custom, old, or rare file types cannot be identified by the `file` command.

Example Usage


    use Tinram\FileIdentifier\FileIdentifier;

    $f = new FileIdentifier('mira.png');
    $r = $f->getResult();
    echo $r['mimeinfo'] . PHP_EOL . $r['fileinfo'];

File Signatures

The file signature data (FileSignatures.php) contain a limited range of common file type signatures in hexadecimal bytes.

This data array can be easily extended with additional and custom file signatures.


File Identifier is released under the GPL v.3.

  Files folder image Files  
File Role Description
Files folder imagesrc (2 files, 1 directory)
Accessible without login Plain text file composer.json Data Auxiliary data
Accessible without login Plain text file LICENSE Lic. License text
Accessible without login Plain text file Doc. Documentation

  Files folder image Files  /  src  
File Role Description
Files folder imageexamples (2 files, 1 directory)
  Plain text file FileIdentifier.php Class Class source
  Plain text file FileSignatures.php Class Class source

  Files folder image Files  /  src  /  examples  
File Role Description
Files folder imagefile_examples (1 file)
  Accessible without login Plain text file cmdline_example.php Example Example script
  Accessible without login Plain text file general_example.php Example Example script

  Files folder image Files  /  src  /  examples  /  file_examples  
File Role Description
  Accessible without login Image file mira.png Icon Icon image

 Version Control Unique User Downloads Download Rankings  
This week:0
All time:6,901
This week:71Up
User Ratings User Comments (1)
 All time