search for in the  
<mhashmime_content_type>
Last updated: Thu, 19 May 2005

LXXII. Mimetype Functions

Introduction

Warning

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.

Requirements

No external libraries are needed to build this extension.

Installation

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.

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

Note: 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.

Example 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

Runtime Configuration

The behaviour of these functions is affected by settings in php.ini.

Table 1. Mimetype configuration options

NameDefaultChangeableChangelog
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.
For further details and definitions of the PHP_INI_* constants, see the Appendix H.

Here's a short explanation of the configuration directives.

mime_magic.debug bool

Enable/disable debugging.

mime_magic.magicfile string

The path to the magic.mime file.

Resource Types

This extension has no resource types defined.

Predefined Constants

This extension has no constants defined.

Table of Contents
mime_content_type -- Detect MIME Content-type for a file


User Contributed Notes
Mimetype Functions
snarkles
22-Apr-2005 10:40
Here's an example from the source for people trying to get the fileinfo extension working with PHP 4:

<?php
$res
= finfo_open(FILEINFO_MIME); /* return mime type ala mimetype extension */
$files = glob("*");
foreach (
$files as $file) {
   echo
finfo_file($res, $file) . "\n";
}
finfo_close($res);
?>
vpopmail at engepel dot com dot br
19-Apr-2005 09:29
If you're going to install the fileinfo pecl package in a RedHat Linux 9.0 the installation will fail because the needed libmagic files are not installed by default.

They are part of the 'file' package. Even if you have file-3.39-9.rpm it doesn't provide the libraries.

You can obtain the original author's latest version of 'file' by anonymous FTP on ftp.astron.com in the directory /pub/file/file-X.YY.tar.gz.

Just extract, compile and install it in /usr/local (its default location) and you can proceed with fileinfo installation.

a big hug,
bruno negrão.
podbox at gmail dot com
10-Mar-2005 07:58
Getting fileinfo to work, and using it:

add this to your php.ini, change the location to your magic.mime file.

mime_magic.magicfile = "/usr/share/misc/magic.mime"

The code:

$fInfo = new finfo(FILEINFO_MIME);
$mimeType = $fInfo->file($fileName);
echo $mimeType;
Bjorn dot Wiberg at its dot uu dot se
08-Mar-2005 03: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]
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.
mad4linux
23-Feb-2005 09:28
The correct link to the mime-types list is:

http://www.iana.org/assignments/media-types/

<mhashmime_content_type>
 Last updated: Thu, 19 May 2005
Copyright © 2001-2005 The PHP Group
All rights reserved.
This unofficial mirror is operated at: The Server Pages
Last updated: Thu May 19 18:35:34 2005 EDT