LXXVI. Mimetype Functions



This extension has been deprecated as the PECL extension fileinfo provides the same functionality (and more) in a much cleaner way.

The functions in this module try to guess the content type and encoding of a file by looking for certain magic byte sequences at specific positions within the file. While this is not a bullet proof approach the heuristics used do a very good job.

This extension is derived from Apache mod_mime_magic, which is itself based on the file command maintained by Ian F. Darwin. See the source code for further historic and copyright information.




You must compile PHP with the configure switch --with-mime-magic to get support for mime-type functions. The extension needs a copy of the simplified magic file that is distributed with the Apache httpd.

注: The configure option has been changed from --enable-mime-magic to --with-mime-magic since PHP 4.3.2

注: This extension is not capable of handling the fully decorated magic file that generally comes with standard Linux distro's and is supposed to be used with recent versions of file command.

Note to Win32 Users: In order to use this module on a Windows environment, you must set the path to the bundled magic.mime file in your php.ini.

例子 1. Setting the path to magic.mime

mime_magic.magicfile = "$PHP_INSTALL_DIR\magic.mime"

Remember to substitute the $PHP_INSTALL_DIR for your actual path to PHP in the above example. e.g. c:\php


这些函数的行为受 php.ini 的影响。

表格 1. Mimetype configuration options

mime_magic.debug"0"PHP_INI_SYSTEMAvailable since PHP 5.0.0.
mime_magic.magicfile"/path/to/php/magic.mime"PHP_INI_SYSTEMAvailable since PHP 4.3.0.
有关 PHP_INI_* 常量进一步的细节与定义参见附录 G


mime_magic.debug bool

Enable/disable debugging.

mime_magic.magicfile string

The path to the magic.mime file.





mime_content_type -- Detect MIME Content-type for a file

add a note add a note User Contributed Notes
Bjorn dot Wiberg at its dot uu dot se
08-Mar-2005 04:32
For those experiencing problems with "invalid magic file, disabled" in phpinfo() although everything seems to be set up correctly:

It seems that the real error behind this is that the PHP mime_magic
extension does NOT obey "php_admin_value mime_magic.magicfile" or
"php_value mime_magic.magicfile" directives in httpd.conf, although the
documentation states that mime_magic.magicfile should be settable from
PHP_INI_SYSTEM, i.e., from php.ini and httpd.conf.

Adding the following to php.ini correctly configures mime_magic (using
an Apache 2-supplied magic file):

mime_magic.magicfile = "/etc/apache/magic"

Furthermore, phpinfo() will SHOW any httpd.conf setting of
mime_magic.magicfile that you make, but still not actually USE anything
but what you specified in php.ini!

Hopefully this can help someone. As the mime_magic extension is deprecated, it is not supported anymore, so I guess we can't expect any fixes to this. Even though many scripts still use the mime_magic functionality.
23-Feb-2005 10:28
The correct link to the mime-types list is: