This extension is enabled by default as of PHP 5.3.0. Before this time, fileinfo was a PECL extension but is no longer maintained there. However, versions prior to 5.3+ may use the » discontinued PECL extension.
Windows users must include the bundled php_fileinfo.dll DLL file in php.ini to enable this extension.
The libmagic library is bundled with PHP, but includes PHP specific changes. A patch against libmagic named libmagic.patch is maintained and may be found within the PHP fileinfo extensions source.
PHP Version | Updated libmagic Version | Notes |
---|---|---|
5.3.2 | 5.03 | |
5.3.0 | 5.02 |
I found that while using the magic files from GnuWin 4.23 worked great for the PECL extension with PHP 5.2 on Win32, when I started migrating to PHP 5.3 all of a sudden Fileinfo no longer worked. Updating the magic files to the latest version (4.26 at the time of this writing) worked like a charm.
I guess the bundled version of Fileinfo uses the new mime magic format while the old PECL version uses the old format.
I need to add an addendum to the previous instalation steps.
Recently gnuwin32 project made a new release of file package (4.24). Binary release does not contain all needed magic files for fileinfo extension.
Instead of downloading latest version of file package (4.24) just get previous one (4.23) which does contain all of the needed files.
It is really strange to find that installing filenfo extension on windows is not yet fully explained. Here are the latest most up-to-date steps to make this work:
1. Add php_fileinfo.dll to the list of enabled extensions
extension=php_fileinfo.dll
2. Download GNU file package for windows
get it from here: http://gnuwin32.sourceforge.net/downlinks/file-bin-zip.php
Extract the folder from the archive called shared\file which contains 4 magic files (magic, magic.mgc, magic.mime, magic.mime.mgc).
3. Place these 4 files in a known place
4. Add system enviroment variable MAGIC that points to the file called magic. For example if you placed magic files in folder called magic in c:\php that means that the propper path is c:\php\magic\magic
5. If you use IIS restart it and fileinfo is ready for use
5a. If you use apache you will have to restart operating system for the service to acknowledge MAGIC env. variable.