2003-10-03 13:58:51 +02:00
|
|
|
<?php
|
2009-04-17 08:25:33 +02:00
|
|
|
/**
|
|
|
|
* eGroupWare API - Mime Magic
|
|
|
|
*
|
|
|
|
* This program is part of the GNU project, see http://www.gnu.org
|
|
|
|
*
|
|
|
|
* Originally taken from the Horde Framework http://horde.org
|
|
|
|
*
|
|
|
|
* Copyright 1999-2003 Anil Madhavapeddy <anil@recoil.org>
|
|
|
|
* Copyright 2002-2003 Michael Slusarz <slusarz@bigworm.colorado.edu>
|
|
|
|
* Copyright 2003 Free Software Foundation, Inc.
|
|
|
|
*
|
|
|
|
* Ported to phpGroupWare by Dave Hall - dave.hall@mbox.com.au
|
|
|
|
* Note: this class was relicensed as GPL by Dave Hall - all mods GPL
|
|
|
|
*
|
|
|
|
* @link http://www.egroupware.org
|
|
|
|
* @package API
|
|
|
|
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
|
|
|
|
* @version $Id$
|
|
|
|
*/
|
2004-01-10 16:18:12 +01:00
|
|
|
|
2009-04-17 08:25:33 +02:00
|
|
|
/**
|
|
|
|
* Mime Magic class
|
|
|
|
*
|
|
|
|
* All methods can be called static, no need to instanciate the class.
|
|
|
|
*/
|
|
|
|
class mime_magic
|
|
|
|
{
|
|
|
|
/**
|
|
|
|
* Convert a file extension to a MIME type
|
|
|
|
*
|
|
|
|
* This is the simplest MIME type guessing function - rough but fast.
|
|
|
|
* If the MIME type is not found then 'application/octet-stream'
|
|
|
|
* is returned.
|
|
|
|
*
|
|
|
|
* @param string $ext The file extension to be mapped to a MIME type.
|
|
|
|
* @return string The MIME type of the file extension.
|
|
|
|
*/
|
|
|
|
public static function ext2mime($ext)
|
2003-10-03 13:58:51 +02:00
|
|
|
{
|
2009-04-17 08:25:33 +02:00
|
|
|
if (empty($ext))
|
2003-10-03 13:58:51 +02:00
|
|
|
{
|
2009-04-17 08:25:33 +02:00
|
|
|
return 'text/plain';//assume no extension is a text file
|
2003-10-03 13:58:51 +02:00
|
|
|
}
|
2009-04-17 08:25:33 +02:00
|
|
|
$ext = strtolower($ext);
|
|
|
|
if (!array_key_exists($ext, self::$mime_extension_map))
|
2003-10-03 13:58:51 +02:00
|
|
|
{
|
2009-04-17 08:25:33 +02:00
|
|
|
return 'application/octet-stream';
|
2003-10-03 13:58:51 +02:00
|
|
|
}
|
2009-04-17 08:25:33 +02:00
|
|
|
return self::$mime_extension_map[$ext];
|
|
|
|
}
|
2004-01-10 16:18:12 +01:00
|
|
|
|
2009-04-17 08:25:33 +02:00
|
|
|
/**
|
|
|
|
* Convert a filename to a MIME type, based on the
|
|
|
|
* global and application specific config files.
|
|
|
|
*
|
|
|
|
* Unlike ext2mime, this function will return
|
|
|
|
* 'application/octet-stream' for any unknown or empty extension
|
|
|
|
*
|
|
|
|
* @param string $filename The filename to be mapped to a MIME type.
|
|
|
|
* @return string The MIME type of the filename.
|
|
|
|
* @author skwashd - changed it to make it work with file.tar.gz etc
|
|
|
|
*/
|
|
|
|
public static function filename2mime($filename)
|
|
|
|
{
|
|
|
|
$fn_parts = explode('.', $filename);
|
|
|
|
if (is_array($fn_parts))
|
2003-10-03 13:58:51 +02:00
|
|
|
{
|
2009-04-17 08:25:33 +02:00
|
|
|
return self::ext2mime(array_pop($fn_parts));
|
2003-10-03 13:58:51 +02:00
|
|
|
}
|
2009-04-17 08:25:33 +02:00
|
|
|
return 'application/octet-stream';
|
|
|
|
}
|
2004-01-10 16:18:12 +01:00
|
|
|
|
2009-04-17 08:25:33 +02:00
|
|
|
/**
|
|
|
|
* temporary fix for apps using the old name
|
|
|
|
*
|
|
|
|
* @deprecated use filename2mime
|
|
|
|
*/
|
|
|
|
public static function filename2mine($filename)
|
|
|
|
{
|
|
|
|
return $this->filename2mime($filename);
|
|
|
|
}
|
2003-12-28 15:54:17 +01:00
|
|
|
|
2009-04-17 08:25:33 +02:00
|
|
|
/**
|
|
|
|
* Convert a MIME type to a file extension, based
|
|
|
|
* on the global Horde and application specific config files.
|
|
|
|
*
|
|
|
|
* If we cannot map the type to a file extension, we return false.
|
|
|
|
*
|
|
|
|
* @param string $type The MIME type to be mapped to a file extension.
|
|
|
|
* @return string The file extension of the MIME type.
|
|
|
|
*/
|
|
|
|
public static function mime2ext($type)
|
|
|
|
{
|
|
|
|
$key = array_search($type, self::$mime_extension_map);
|
|
|
|
if (empty($type) || $key === false)
|
2003-12-28 15:54:17 +01:00
|
|
|
{
|
2009-04-17 08:25:33 +02:00
|
|
|
return false;
|
2003-12-28 15:54:17 +01:00
|
|
|
}
|
2009-04-17 08:25:33 +02:00
|
|
|
return $key;
|
|
|
|
}
|
2004-01-10 16:18:12 +01:00
|
|
|
|
2009-04-17 08:25:33 +02:00
|
|
|
/**
|
|
|
|
* Uses variants of the UNIX "file" command to attempt to determine the
|
|
|
|
* MIME type of an unknown file.
|
|
|
|
*
|
|
|
|
* @param string $filename The filename (including full path) to the file to analyze.
|
|
|
|
*
|
|
|
|
* @return string The MIME type of the file. Returns false if either
|
|
|
|
* the file type isn't recognized or the file command is
|
|
|
|
* not available.
|
|
|
|
*/
|
|
|
|
public static function analyze_file($path)
|
|
|
|
{
|
|
|
|
// If the PHP Mimetype extension is available, use that.
|
|
|
|
if (function_exists('mime_content_type'))
|
2003-10-03 13:58:51 +02:00
|
|
|
{
|
2009-04-17 08:25:33 +02:00
|
|
|
return mime_content_type($path);
|
2003-10-03 13:58:51 +02:00
|
|
|
}
|
2009-04-17 08:25:33 +02:00
|
|
|
else
|
2003-10-03 13:58:51 +02:00
|
|
|
{
|
2009-04-17 08:25:33 +02:00
|
|
|
// Use a built-in magic file.
|
|
|
|
if (!($fp = @fopen($path, 'rb')))
|
2003-10-03 13:58:51 +02:00
|
|
|
{
|
2009-04-17 08:25:33 +02:00
|
|
|
return false;
|
2003-10-03 13:58:51 +02:00
|
|
|
}
|
2009-04-17 08:25:33 +02:00
|
|
|
foreach (self::$mime_magic_file as $offset => $odata)
|
2003-10-03 13:58:51 +02:00
|
|
|
{
|
2009-04-17 08:25:33 +02:00
|
|
|
foreach ($odata as $length => $ldata)
|
2003-10-03 13:58:51 +02:00
|
|
|
{
|
2009-04-17 08:25:33 +02:00
|
|
|
@fseek($fp, $offset, SEEK_SET);
|
|
|
|
$lookup = @fread($fp, $length);
|
|
|
|
if (!empty($ldata[$lookup]))
|
2003-10-03 13:58:51 +02:00
|
|
|
{
|
2009-04-17 08:25:33 +02:00
|
|
|
fclose($fp);
|
|
|
|
return $ldata[$lookup];
|
2003-10-03 13:58:51 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2009-04-17 08:25:33 +02:00
|
|
|
fclose($fp);
|
2003-10-03 13:58:51 +02:00
|
|
|
}
|
2009-04-17 08:25:33 +02:00
|
|
|
return false;
|
|
|
|
}
|
2003-10-03 13:58:51 +02:00
|
|
|
|
2009-04-17 08:25:33 +02:00
|
|
|
/**
|
|
|
|
* Instead of using an existing file a chunk of data is used for
|
|
|
|
* testing. Best to handle the file creation here, to make sure
|
|
|
|
* it is secure and it is properly cleaned up. Really just
|
|
|
|
* a temp file creation and clean up method wrapper for analyze_file()
|
|
|
|
*
|
|
|
|
* @param string $data the data to analyze
|
|
|
|
*
|
|
|
|
* @param string MIME type false for none.
|
|
|
|
*
|
|
|
|
* @author skwashd
|
|
|
|
*/
|
|
|
|
public static function analyze_data($data)
|
|
|
|
{
|
|
|
|
if(!is_writeable(@$GLOBALS['egw_info']['server']['temp_dir']))
|
2003-10-03 13:58:51 +02:00
|
|
|
{
|
2009-04-17 08:25:33 +02:00
|
|
|
//nothing we can do but bail out
|
|
|
|
return false;
|
|
|
|
}
|
2004-01-10 16:18:12 +01:00
|
|
|
|
2009-04-17 08:25:33 +02:00
|
|
|
mt_srand(time());
|
|
|
|
$filename = $GLOBALS['egw_info']['server']['temp_dir'] . SEP
|
|
|
|
. md5( time() + mt_rand() ) . '.tmp';
|
2003-10-03 13:58:51 +02:00
|
|
|
|
2009-04-17 08:25:33 +02:00
|
|
|
$fp = @fopen($filename, 'ab');
|
|
|
|
if(!$fp || !$data)
|
|
|
|
{
|
|
|
|
//houston we have a problem - bail out
|
|
|
|
return false;
|
|
|
|
}
|
2003-10-03 13:58:51 +02:00
|
|
|
|
2009-04-17 08:25:33 +02:00
|
|
|
if(!fwrite($fp, $data))
|
|
|
|
{
|
|
|
|
//bail out again
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
fclose($fp);
|
|
|
|
chmod($filename, 0600); //just to be cautious
|
2003-10-03 13:58:51 +02:00
|
|
|
|
2009-04-17 08:25:33 +02:00
|
|
|
$mime = self::analyze_file($filename);
|
2004-01-10 16:18:12 +01:00
|
|
|
|
2009-04-17 08:25:33 +02:00
|
|
|
unlink($filename);//remove the temp file
|
2004-01-10 16:18:12 +01:00
|
|
|
|
2009-04-17 08:25:33 +02:00
|
|
|
return $mime;
|
|
|
|
}
|
2003-10-03 13:58:51 +02:00
|
|
|
|
2009-04-17 08:25:33 +02:00
|
|
|
/**
|
|
|
|
* Get an array containing a mapping of common file extensions to
|
|
|
|
* MIME types.
|
|
|
|
*
|
|
|
|
* Original array taken from http://horde.org
|
|
|
|
* added OpenOffice Extensions by KL@stylite.de
|
|
|
|
*
|
|
|
|
* @author skwashd
|
|
|
|
* @author ralfbecker - convert to a static array ;-)
|
|
|
|
*
|
|
|
|
* @var array of extenstion to mime mappings
|
|
|
|
*/
|
|
|
|
static $mime_extension_map = array(
|
|
|
|
'ai' => 'application/postscript',
|
|
|
|
'aif' => 'audio/x-aiff',
|
|
|
|
'aifc' => 'audio/x-aiff',
|
|
|
|
'aiff' => 'audio/x-aiff',
|
|
|
|
'asc' => 'application/pgp', //changed by skwashd - was text/plain
|
|
|
|
'asf' => 'video/x-ms-asf',
|
|
|
|
'asx' => 'video/x-ms-asf',
|
|
|
|
'au' => 'audio/basic',
|
|
|
|
'avi' => 'video/x-msvideo',
|
|
|
|
'bcpio' => 'application/x-bcpio',
|
|
|
|
'bin' => 'application/octet-stream',
|
|
|
|
'bmp' => 'image/bmp',
|
|
|
|
'c' => 'text/plain', // or 'text/x-csrc', //added by skwashd
|
|
|
|
'c++' => 'text/plain', // or 'text/x-c++src', //added by skwashd
|
|
|
|
'cc' => 'text/plain', // or 'text/x-c++src', //added by skwashd
|
|
|
|
'cs' => 'text/plain', //added by skwashd - for C# src
|
|
|
|
'cpp' => 'text/x-c++src', //added by skwashd
|
|
|
|
'cxx' => 'text/x-c++src', //added by skwashd
|
|
|
|
'cdf' => 'application/x-netcdf',
|
|
|
|
'class' => 'application/octet-stream',//secure but application/java-class is correct
|
|
|
|
'com' => 'application/octet-stream',//added by skwashd
|
|
|
|
'cpio' => 'application/x-cpio',
|
|
|
|
'cpt' => 'application/mac-compactpro',
|
|
|
|
'csh' => 'application/x-csh',
|
|
|
|
'css' => 'text/css',
|
|
|
|
'csv' => 'text/comma-separated-values',//added by skwashd
|
|
|
|
'dcr' => 'application/x-director',
|
|
|
|
'diff' => 'text/diff',
|
|
|
|
'dir' => 'application/x-director',
|
|
|
|
'dll' => 'application/octet-stream',
|
|
|
|
'dms' => 'application/octet-stream',
|
|
|
|
'doc' => 'application/msword',
|
|
|
|
'dot' => 'application/msword',//added by skwashd
|
|
|
|
'dvi' => 'application/x-dvi',
|
|
|
|
'dxr' => 'application/x-director',
|
|
|
|
'eps' => 'application/postscript',
|
|
|
|
'etx' => 'text/x-setext',
|
|
|
|
'exe' => 'application/octet-stream',
|
|
|
|
'ez' => 'application/andrew-inset',
|
|
|
|
'gif' => 'image/gif',
|
|
|
|
'gtar' => 'application/x-gtar',
|
|
|
|
'gz' => 'application/x-gzip',
|
|
|
|
'h' => 'text/plain', // or 'text/x-chdr',//added by skwashd
|
|
|
|
'h++' => 'text/plain', // or 'text/x-c++hdr', //added by skwashd
|
|
|
|
'hh' => 'text/plain', // or 'text/x-c++hdr', //added by skwashd
|
|
|
|
'hpp' => 'text/plain', // or 'text/x-c++hdr', //added by skwashd
|
|
|
|
'hxx' => 'text/plain', // or 'text/x-c++hdr', //added by skwashd
|
|
|
|
'hdf' => 'application/x-hdf',
|
|
|
|
'hqx' => 'application/mac-binhex40',
|
|
|
|
'htm' => 'text/html',
|
|
|
|
'html' => 'text/html',
|
|
|
|
'ice' => 'x-conference/x-cooltalk',
|
|
|
|
'ics' => 'text/calendar',
|
|
|
|
'ief' => 'image/ief',
|
|
|
|
'ifb' => 'text/calendar',
|
|
|
|
'iges' => 'model/iges',
|
|
|
|
'igs' => 'model/iges',
|
|
|
|
'jar' => 'application/x-jar', //added by skwashd - alternative mime type
|
|
|
|
'java' => 'text/x-java-source', //added by skwashd
|
|
|
|
'jpeg' => 'image/jpeg',
|
|
|
|
'jpg' => 'image/jpeg',
|
|
|
|
'jpe' => 'image/jpeg',
|
|
|
|
'js' => 'application/x-javascript',
|
|
|
|
'kar' => 'audio/midi',
|
|
|
|
'latex' => 'application/x-latex',
|
|
|
|
'lha' => 'application/octet-stream',
|
|
|
|
'log' => 'text/plain',
|
|
|
|
'lzh' => 'application/octet-stream',
|
|
|
|
'm3u' => 'audio/x-mpegurl',
|
|
|
|
'man' => 'application/x-troff-man',
|
|
|
|
'me' => 'application/x-troff-me',
|
|
|
|
'mesh' => 'model/mesh',
|
|
|
|
'mid' => 'audio/midi',
|
|
|
|
'midi' => 'audio/midi',
|
|
|
|
'mif' => 'application/vnd.mif',
|
|
|
|
'mov' => 'video/quicktime',
|
|
|
|
'movie' => 'video/x-sgi-movie',
|
|
|
|
'mp2' => 'audio/mpeg',
|
|
|
|
'mp3' => 'audio/mpeg',
|
|
|
|
'mpe' => 'video/mpeg',
|
|
|
|
'mpeg' => 'video/mpeg',
|
|
|
|
'mpg' => 'video/mpeg',
|
|
|
|
'mpga' => 'audio/mpeg',
|
|
|
|
'ms' => 'application/x-troff-ms',
|
|
|
|
'msh' => 'model/mesh',
|
|
|
|
'mxu' => 'video/vnd.mpegurl',
|
|
|
|
'nc' => 'application/x-netcdf',
|
|
|
|
'oda' => 'application/oda',
|
|
|
|
'odb' => 'application/vnd.oasis.opendocument.database',
|
|
|
|
'odg' => 'application/vnd.oasis.opendocument.graphics',
|
|
|
|
'odt' => 'application/vnd.oasis.opendocument.text',
|
|
|
|
'odp' => 'application/vnd.oasis.opendocument.presentation',
|
|
|
|
'ods' => 'application/vnd.oasis.opendocument.spreadsheet',
|
|
|
|
'patch' => 'text/diff',
|
|
|
|
'pbm' => 'image/x-portable-bitmap',
|
|
|
|
'pdb' => 'chemical/x-pdb',
|
|
|
|
'pdf' => 'application/pdf',
|
|
|
|
'pgm' => 'image/x-portable-graymap',
|
|
|
|
'pgn' => 'application/x-chess-pgn',
|
|
|
|
'pgp' => 'application/pgp',//added by skwashd
|
|
|
|
'php' => 'application/x-httpd-php',
|
|
|
|
'php3' => 'application/x-httpd-php3',
|
|
|
|
'pl' => 'application/x-perl',
|
|
|
|
'pm' => 'application/x-perl',
|
|
|
|
'png' => 'image/png',
|
|
|
|
'pnm' => 'image/x-portable-anymap',
|
|
|
|
'po' => 'text/plain',
|
|
|
|
'ppm' => 'image/x-portable-pixmap',
|
|
|
|
'ppt' => 'application/vnd.ms-powerpoint',
|
|
|
|
'ps' => 'application/postscript',
|
|
|
|
'qt' => 'video/quicktime',
|
|
|
|
'ra' => 'audio/x-realaudio',
|
|
|
|
'ram' => 'audio/x-pn-realaudio',
|
|
|
|
'ras' => 'image/x-cmu-raster',
|
|
|
|
'rgb' => 'image/x-rgb',
|
|
|
|
'rm' => 'audio/x-pn-realaudio',
|
|
|
|
'roff' => 'application/x-troff',
|
|
|
|
'rpm' => 'audio/x-pn-realaudio-plugin',
|
|
|
|
'rtf' => 'text/rtf',
|
|
|
|
'rtx' => 'text/richtext',
|
|
|
|
'sgm' => 'text/sgml',
|
|
|
|
'sgml' => 'text/sgml',
|
|
|
|
'sh' => 'application/x-sh',
|
|
|
|
'shar' => 'application/x-shar',
|
|
|
|
'shtml' => 'text/html',
|
|
|
|
'silo' => 'model/mesh',
|
|
|
|
'sit' => 'application/x-stuffit',
|
|
|
|
'skd' => 'application/x-koan',
|
|
|
|
'skm' => 'application/x-koan',
|
|
|
|
'skp' => 'application/x-koan',
|
|
|
|
'skt' => 'application/x-koan',
|
|
|
|
'smi' => 'application/smil',
|
|
|
|
'smil' => 'application/smil',
|
|
|
|
'snd' => 'audio/basic',
|
|
|
|
'so' => 'application/octet-stream',
|
|
|
|
'spl' => 'application/x-futuresplash',
|
|
|
|
'src' => 'application/x-wais-source',
|
|
|
|
'stc' => 'application/vnd.sun.xml.calc.template',
|
|
|
|
'std' => 'application/vnd.sun.xml.draw.template',
|
|
|
|
'sti' => 'application/vnd.sun.xml.impress.template',
|
|
|
|
'stw' => 'application/vnd.sun.xml.writer.template',
|
|
|
|
'sv4cpio' => 'application/x-sv4cpio',
|
|
|
|
'sv4crc' => 'application/x-sv4crc',
|
|
|
|
'swf' => 'application/x-shockwave-flash',
|
|
|
|
'sxc' => 'application/vnd.sun.xml.calc',
|
|
|
|
'sxd' => 'application/vnd.sun.xml.draw',
|
|
|
|
'sxg' => 'application/vnd.sun.xml.writer.global',
|
|
|
|
'sxi' => 'application/vnd.sun.xml.impress',
|
|
|
|
'sxm' => 'application/vnd.sun.xml.math',
|
|
|
|
'sxw' => 'application/vnd.sun.xml.writer',
|
|
|
|
't' => 'application/x-troff',
|
|
|
|
'tar' => 'application/x-tar',
|
|
|
|
'tcl' => 'application/x-tcl',
|
|
|
|
'tex' => 'application/x-tex',
|
|
|
|
'texi' => 'application/x-texinfo',
|
|
|
|
'texinfo' => 'application/x-texinfo',
|
|
|
|
'tgz' => 'application/x-gtar',
|
|
|
|
'tif' => 'image/tiff',
|
|
|
|
'tiff' => 'image/tiff',
|
|
|
|
'tr' => 'application/x-troff',
|
|
|
|
'tsv' => 'text/tab-separated-values',
|
|
|
|
'txt' => 'text/plain',
|
|
|
|
'ustar' => 'application/x-ustar',
|
|
|
|
'vbs' => 'text/plain', //added by skwashd - for obvious reasons
|
|
|
|
'vcd' => 'application/x-cdlink',
|
|
|
|
'vcf' => 'text/x-vcard',
|
|
|
|
'vcs' => 'text/calendar',
|
|
|
|
'vfb' => 'text/calendar',
|
|
|
|
'vrml' => 'model/vrml',
|
|
|
|
'vsd' => 'application/vnd.visio',
|
|
|
|
'wav' => 'audio/x-wav',
|
|
|
|
'wax' => 'audio/x-ms-wax',
|
|
|
|
'wbmp' => 'image/vnd.wap.wbmp',
|
|
|
|
'wbxml' => 'application/vnd.wap.wbxml',
|
|
|
|
'wm' => 'video/x-ms-wm',
|
|
|
|
'wma' => 'audio/x-ms-wma',
|
|
|
|
'wmd' => 'application/x-ms-wmd',
|
|
|
|
'wml' => 'text/vnd.wap.wml',
|
|
|
|
'wmlc' => 'application/vnd.wap.wmlc',
|
|
|
|
'wmls' => 'text/vnd.wap.wmlscript',
|
|
|
|
'wmlsc' => 'application/vnd.wap.wmlscriptc',
|
|
|
|
'wmv' => 'video/x-ms-wmv',
|
|
|
|
'wmx' => 'video/x-ms-wmx',
|
|
|
|
'wmz' => 'application/x-ms-wmz',
|
|
|
|
'wrl' => 'model/vrml',
|
|
|
|
'wvx' => 'video/x-ms-wvx',
|
|
|
|
'xbm' => 'image/x-xbitmap',
|
|
|
|
'xht' => 'application/xhtml+xml',
|
|
|
|
'xhtml' => 'application/xhtml+xml',
|
|
|
|
'xls' => 'application/vnd.ms-excel',
|
|
|
|
'xlt' => 'application/vnd.ms-excel',
|
|
|
|
'xml' => 'application/xml',
|
|
|
|
'xpm' => 'image/x-xpixmap',
|
|
|
|
'xsl' => 'text/xml',
|
|
|
|
'xwd' => 'image/x-xwindowdump',
|
|
|
|
'xyz' => 'chemical/x-xyz',
|
|
|
|
'z' => 'application/x-compress',
|
|
|
|
'zip' => 'application/zip',
|
|
|
|
);
|
2003-10-03 13:58:51 +02:00
|
|
|
|
2009-04-17 08:25:33 +02:00
|
|
|
/**
|
|
|
|
* @deprecated use static parameter mime_magic::$mime_extension_map
|
|
|
|
* @return array
|
|
|
|
*/
|
|
|
|
public static function get_mime_ext_map()
|
|
|
|
{
|
|
|
|
return self::$mime_extension_map;
|
|
|
|
}
|
2003-10-03 13:58:51 +02:00
|
|
|
|
2009-04-17 08:25:33 +02:00
|
|
|
/**
|
|
|
|
* Get the mime magic mapping file - last resort test
|
|
|
|
*
|
|
|
|
* Note Taken from horde.org - no copyright notice attached
|
|
|
|
*
|
|
|
|
* @author skwashd - converted to a function
|
|
|
|
* @author ralfbecker - convert to a static array ;-)
|
|
|
|
*
|
|
|
|
* @var array mime magic data
|
|
|
|
*/
|
|
|
|
static $mime_magic_file = array(
|
|
|
|
0 => array(
|
|
|
|
30 => array(
|
|
|
|
"\145\166\141\154\40\42\145\170\145\143\40\57\165\163\162\57\154\157\143\141\154\57\142\151\156\57\160\145\162\154" => 'application/x-perl',
|
|
|
|
),
|
|
|
|
24 => array(
|
|
|
|
"\145\166\141\154\40\42\145\170\145\143\40\57\165\163\162\57\142\151\156\57\160\145\162\154" => 'application/x-perl',
|
|
|
|
),
|
|
|
|
23 => array(
|
|
|
|
"\103\157\155\155\157\156\40\163\165\142\144\151\162\145\143\164\157\162\151\145\163\72\40" => 'text/x-patch',
|
|
|
|
"\75\74\154\151\163\164\76\156\74\160\162\157\164\157\143\157\154\40\142\142\156\55\155" => 'application/data',
|
|
|
|
),
|
|
|
|
22 => array(
|
|
|
|
"\101\115\101\116\104\101\72\40\124\101\120\105\123\124\101\122\124\40\104\101\124\105" => 'application/x-amanda-header',
|
|
|
|
"\107\106\61\120\101\124\103\110\61\60\60\60\111\104\43\60\60\60\60\60\62\60" => 'audio/x-gus-patch',
|
|
|
|
"\107\106\61\120\101\124\103\110\61\61\60\60\111\104\43\60\60\60\60\60\62\60" => 'audio/x-gus-patch',
|
|
|
|
"\43\41\11\57\165\163\162\57\154\157\143\141\154\57\142\151\156\57\142\141\163\150" => 'application/x-sh',
|
|
|
|
"\43\41\11\57\165\163\162\57\154\157\143\141\154\57\142\151\156\57\147\141\167\153" => 'application/x-awk',
|
|
|
|
"\43\41\11\57\165\163\162\57\154\157\143\141\154\57\142\151\156\57\156\141\167\153" => 'application/x-awk',
|
|
|
|
"\43\41\11\57\165\163\162\57\154\157\143\141\154\57\142\151\156\57\160\145\162\154" => 'application/x-perl',
|
|
|
|
"\43\41\11\57\165\163\162\57\154\157\143\141\154\57\142\151\156\57\164\143\163\150" => 'application/x-csh',
|
|
|
|
"\43\41\40\57\165\163\162\57\154\157\143\141\154\57\142\151\156\57\142\141\163\150" => 'application/x-sh',
|
|
|
|
"\43\41\40\57\165\163\162\57\154\157\143\141\154\57\142\151\156\57\147\141\167\153" => 'application/x-awk',
|
|
|
|
"\43\41\40\57\165\163\162\57\154\157\143\141\154\57\142\151\156\57\156\141\167\153" => 'application/x-awk',
|
|
|
|
"\43\41\40\57\165\163\162\57\154\157\143\141\154\57\142\151\156\57\160\145\162\154" => 'application/x-perl',
|
|
|
|
"\43\41\40\57\165\163\162\57\154\157\143\141\154\57\142\151\156\57\164\143\163\150" => 'application/x-csh',
|
|
|
|
),
|
|
|
|
21 => array(
|
|
|
|
"\43\41\11\57\165\163\162\57\154\157\143\141\154\57\142\151\156\57\141\163\150" => 'application/x-zsh',
|
|
|
|
"\43\41\11\57\165\163\162\57\154\157\143\141\154\57\142\151\156\57\172\163\150" => 'application/x-zsh',
|
|
|
|
"\43\41\40\57\165\163\162\57\154\157\143\141\154\57\142\151\156\57\141\163\150" => 'application/x-zsh',
|
|
|
|
"\43\41\40\57\165\163\162\57\154\157\143\141\154\57\142\151\156\57\172\163\150" => 'application/x-zsh',
|
|
|
|
"\43\41\57\165\163\162\57\154\157\143\141\154\57\142\151\156\57\142\141\163\150" => 'application/x-sh',
|
|
|
|
"\43\41\57\165\163\162\57\154\157\143\141\154\57\142\151\156\57\147\141\167\153" => 'application/x-awk',
|
|
|
|
"\43\41\57\165\163\162\57\154\157\143\141\154\57\142\151\156\57\156\141\167\153" => 'application/x-awk',
|
|
|
|
"\43\41\57\165\163\162\57\154\157\143\141\154\57\142\151\156\57\160\145\162\154" => 'application/x-perl',
|
|
|
|
"\43\41\57\165\163\162\57\154\157\143\141\154\57\142\151\156\57\164\143\163\150" => 'application/x-csh',
|
|
|
|
),
|
|
|
|
20 => array(
|
|
|
|
"\145\166\141\154\40\42\145\170\145\143\40\57\142\151\156\57\160\145\162\154" => 'application/x-perl',
|
|
|
|
"\43\41\11\57\165\163\162\57\154\157\143\141\154\57\142\151\156\57\141\145" => 'text/script',
|
|
|
|
"\43\41\40\57\165\163\162\57\154\157\143\141\154\57\142\151\156\57\141\145" => 'text/script',
|
|
|
|
"\43\41\57\165\163\162\57\154\157\143\141\154\57\142\151\156\57\141\163\150" => 'application/x-sh',
|
|
|
|
"\43\41\57\165\163\162\57\154\157\143\141\154\57\142\151\156\57\172\163\150" => 'application/x-zsh',
|
|
|
|
),
|
|
|
|
19 => array(
|
|
|
|
"\103\162\145\141\164\151\166\145\40\126\157\151\143\145\40\106\151\154\145" => 'audio/x-voc',
|
|
|
|
"\41\74\141\162\143\150\76\156\137\137\137\137\137\137\137\137\137\137\105" => 'application/x-ar',
|
|
|
|
"\41\74\141\162\143\150\76\156\137\137\137\137\137\137\137\137\66\64\105" => 'application/data',
|
|
|
|
"\43\41\57\165\163\162\57\154\157\143\141\154\57\142\151\156\57\141\145" => 'text/script',
|
|
|
|
),
|
|
|
|
18 => array(
|
|
|
|
"\106\151\114\145\123\164\101\162\124\146\111\154\105\163\124\141\122\164" => 'text/x-apple-binscii',
|
|
|
|
"\43\41\40\57\165\163\162\57\154\157\143\141\154\57\164\143\163\150" => 'application/x-csh',
|
|
|
|
"\45\41\120\123\55\101\144\157\142\145\106\157\156\164\55\61\56\60" => 'font/type1',
|
|
|
|
),
|
|
|
|
17 => array(
|
|
|
|
"\43\41\57\165\163\162\57\154\157\143\141\154\57\164\143\163\150" => 'application/x-csh',
|
|
|
|
),
|
|
|
|
16 => array(
|
|
|
|
"\105\170\164\145\156\144\145\144\40\115\157\144\165\154\145\72" => 'audio/x-ft2-mod',
|
|
|
|
"\123\164\141\162\164\106\157\156\164\115\145\164\162\151\143\163" => 'font/x-sunos-news',
|
|
|
|
"\43\41\11\57\165\163\162\57\142\151\156\57\147\141\167\153" => 'application/x-awk',
|
|
|
|
"\43\41\11\57\165\163\162\57\142\151\156\57\156\141\167\153" => 'application/x-awk',
|
|
|
|
"\43\41\11\57\165\163\162\57\142\151\156\57\160\145\162\154" => 'application/x-perl',
|
|
|
|
"\43\41\40\57\165\163\162\57\142\151\156\57\147\141\167\153" => 'application/x-awk',
|
|
|
|
"\43\41\40\57\165\163\162\57\142\151\156\57\156\141\167\153" => 'application/x-awk',
|
|
|
|
"\43\41\40\57\165\163\162\57\142\151\156\57\160\145\162\154" => 'application/x-perl',
|
|
|
|
"\74\115\141\153\145\162\104\151\143\164\151\157\156\141\162\171" => 'application/x-framemaker',
|
|
|
|
"\74\115\141\153\145\162\123\143\162\145\145\156\106\157\156\164" => 'font/x-framemaker',
|
|
|
|
),
|
|
|
|
15 => array(
|
|
|
|
"\43\41\11\57\165\163\162\57\142\151\156\57\141\167\153" => 'application/x-awk',
|
|
|
|
"\43\41\40\57\165\163\162\57\142\151\156\57\141\167\153" => 'application/x-awk',
|
|
|
|
"\43\41\57\165\163\162\57\142\151\156\57\147\141\167\153" => 'application/x-awk',
|
|
|
|
"\43\41\57\165\163\162\57\142\151\156\57\156\141\167\153" => 'application/x-awk',
|
|
|
|
"\43\41\57\165\163\162\57\142\151\156\57\160\145\162\154" => 'application/x-perl',
|
|
|
|
),
|
|
|
|
14 => array(
|
|
|
|
"\41\74\141\162\143\150\76\156\144\145\142\151\141\156" => 'application/x-dpkg',
|
|
|
|
"\43\41\57\165\163\162\57\142\151\156\57\141\167\153" => 'application/x-awk',
|
|
|
|
"\74\41\104\117\103\124\131\120\105\40\110\124\115\114" => 'text/html',
|
|
|
|
"\74\41\144\157\143\164\171\160\145\40\150\164\155\154" => 'text/html',
|
|
|
|
),
|
|
|
|
13 => array(
|
|
|
|
"\107\111\115\120\40\107\162\141\144\151\145\156\164" => 'application/x-gimp-gradient',
|
|
|
|
),
|
|
|
|
12 => array(
|
|
|
|
"\122\145\164\165\162\156\55\120\141\164\150\72" => 'message/rfc822',
|
|
|
|
"\43\41\11\57\142\151\156\57\142\141\163\150" => 'application/x-sh',
|
|
|
|
"\43\41\11\57\142\151\156\57\147\141\167\153" => 'application/x-awk',
|
|
|
|
"\43\41\11\57\142\151\156\57\156\141\167\153" => 'application/x-awk',
|
|
|
|
"\43\41\11\57\142\151\156\57\160\145\162\154" => 'application/x-perl',
|
|
|
|
"\43\41\11\57\142\151\156\57\164\143\163\150" => 'application/x-csh',
|
|
|
|
"\43\41\40\57\142\151\156\57\142\141\163\150" => 'application/x-sh',
|
|
|
|
"\43\41\40\57\142\151\156\57\147\141\167\153" => 'application/x-awk',
|
|
|
|
"\43\41\40\57\142\151\156\57\156\141\167\153" => 'application/x-awk',
|
|
|
|
"\43\41\40\57\142\151\156\57\160\145\162\154" => 'application/x-perl',
|
|
|
|
"\43\41\40\57\142\151\156\57\164\143\163\150" => 'application/x-csh',
|
|
|
|
),
|
|
|
|
11 => array(
|
|
|
|
"\43\41\11\57\142\151\156\57\141\167\153" => 'application/x-awk',
|
|
|
|
"\43\41\11\57\142\151\156\57\143\163\150" => 'application/x-csh',
|
|
|
|
"\43\41\11\57\142\151\156\57\153\163\150" => 'application/x-ksh',
|
|
|
|
"\43\41\40\57\142\151\156\57\141\167\153" => 'application/x-awk',
|
|
|
|
"\43\41\40\57\142\151\156\57\143\163\150" => 'application/x-csh',
|
|
|
|
"\43\41\40\57\142\151\156\57\153\163\150" => 'application/x-ksh',
|
|
|
|
"\43\41\57\142\151\156\57\142\141\163\150" => 'application/x-sh',
|
|
|
|
"\43\41\57\142\151\156\57\147\141\167\153" => 'application/x-awk',
|
|
|
|
"\43\41\57\142\151\156\57\156\141\167\153" => 'application/x-awk',
|
|
|
|
"\43\41\57\142\151\156\57\160\145\162\154" => 'application/x-perl',
|
|
|
|
"\43\41\57\142\151\156\57\164\143\163\150" => 'application/x-csh',
|
|
|
|
),
|
|
|
|
10 => array(
|
|
|
|
"\102\151\164\155\141\160\146\151\154\145" => 'image/unknown',
|
|
|
|
"\123\124\101\122\124\106\117\116\124\40" => 'font/x-bdf',
|
|
|
|
"\43\41\11\57\142\151\156\57\162\143" => 'text/script',
|
|
|
|
"\43\41\11\57\142\151\156\57\163\150" => 'application/x-sh',
|
|
|
|
"\43\41\40\57\142\151\156\57\162\143" => 'text/script',
|
|
|
|
"\43\41\40\57\142\151\156\57\163\150" => 'application/x-sh',
|
|
|
|
"\43\41\57\142\151\156\57\141\167\153" => 'application/x-awk',
|
|
|
|
"\43\41\57\142\151\156\57\143\163\150" => 'application/x-csh',
|
|
|
|
"\43\41\57\142\151\156\57\153\163\150" => 'application/x-ksh',
|
|
|
|
"\74\115\141\153\145\162\106\151\154\145" => 'application/x-framemaker',
|
|
|
|
),
|
|
|
|
9 => array(
|
|
|
|
"\122\145\143\145\151\166\145\144\72" => 'message/rfc822',
|
|
|
|
"\123\164\141\162\164\106\157\156\164" => 'font/x-sunos-news',
|
|
|
|
"\211\114\132\117\0\15\12\32\12" => 'application/data',
|
|
|
|
"\43\41\57\142\151\156\57\162\143" => 'text/script',
|
|
|
|
"\43\41\57\142\151\156\57\163\150" => 'application/x-sh',
|
|
|
|
"\55\162\157\155\61\146\163\55\60" => 'application/x-filesystem',
|
|
|
|
"\74\102\157\157\153\106\151\154\145" => 'application/x-framemaker',
|
|
|
|
),
|
|
|
|
8 => array(
|
|
|
|
"\117\156\154\171\40\151\156\40" => 'text/x-patch',
|
|
|
|
"\147\151\155\160\40\170\143\146" => 'application/x-gimp-image',
|
|
|
|
"\155\163\147\143\141\164\60\61" => 'application/x-locale',
|
|
|
|
"\32\141\162\143\150\151\166\145" => 'application/data',
|
|
|
|
"\41\74\120\104\106\76\41\156" => 'application/x-prof',
|
|
|
|
"\74\115\111\106\106\151\154\145" => 'application/x-framemaker',
|
|
|
|
),
|
|
|
|
7 => array(
|
|
|
|
"\101\162\164\151\143\154\145" => 'message/news',
|
|
|
|
"\120\103\104\137\117\120\101" => 'x/x-photo-cd-overfiew-file',
|
|
|
|
"\351\54\1\112\101\115\11" => 'application/data',
|
|
|
|
"\41\74\141\162\143\150\76" => 'application/x-ar',
|
|
|
|
"\72\40\163\150\145\154\154" => 'application/data',
|
|
|
|
),
|
|
|
|
6 => array(
|
|
|
|
"\116\165\106\151\154\145" => 'application/data',
|
|
|
|
"\116\365\106\351\154\345" => 'application/data',
|
|
|
|
"\60\67\60\67\60\61" => 'application/x-cpio',
|
|
|
|
"\60\67\60\67\60\62" => 'application/x-cpio',
|
|
|
|
"\60\67\60\67\60\67" => 'application/x-cpio',
|
|
|
|
"\74\115\141\153\145\162" => 'application/x-framemaker',
|
|
|
|
"\74\124\111\124\114\105" => 'text/html',
|
|
|
|
"\74\164\151\164\154\145" => 'text/html',
|
|
|
|
),
|
|
|
|
5 => array(
|
|
|
|
"\0\1\0\0\0" => 'font/ttf',
|
|
|
|
"\0\4\36\212\200" => 'application/core',
|
|
|
|
"\102\101\102\131\114" => 'message/x-gnu-rmail',
|
|
|
|
"\102\105\107\111\116" => 'application/x-awk',
|
|
|
|
"\103\157\162\145\1" => 'application/x-executable-file',
|
|
|
|
"\104\61\56\60\15" => 'font/x-speedo',
|
|
|
|
"\106\162\157\155\72" => 'message/rfc822',
|
|
|
|
"\115\101\123\137\125" => 'audio/x-multimate-mod',
|
|
|
|
"\120\117\136\121\140" => 'text/vnd.ms-word',
|
|
|
|
"\120\141\164\150\72" => 'message/news',
|
|
|
|
"\130\162\145\146\72" => 'message/news',
|
|
|
|
"\144\151\146\146\40" => 'text/x-patch',
|
|
|
|
"\225\64\62\62\336" => 'application/x-locale',
|
|
|
|
"\336\62\62\64\225" => 'application/x-locale',
|
|
|
|
"\74\110\105\101\104" => 'text/html',
|
|
|
|
"\74\110\124\115\114" => 'text/html',
|
|
|
|
"\74\150\145\141\144" => 'text/html',
|
|
|
|
"\74\150\164\155\154" => 'text/html',
|
|
|
|
"\75\74\141\162\76" => 'application/x-ar',
|
|
|
|
),
|
|
|
|
4 => array(
|
|
|
|
"\0\0\0\314" => 'application/x-executable-file',
|
|
|
|
"\0\0\0\4" => 'font/x-snf',
|
|
|
|
"\0\0\1\107" => 'application/x-object-file',
|
|
|
|
"\0\0\1\113" => 'application/x-executable-file',
|
|
|
|
"\0\0\1\115" => 'application/x-executable-file',
|
|
|
|
"\0\0\1\117" => 'application/x-executable-file',
|
|
|
|
"\0\0\1\201" => 'application/x-object-file',
|
|
|
|
"\0\0\1\207" => 'application/data',
|
|
|
|
"\0\0\1\263" => 'video/mpeg',
|
|
|
|
"\0\0\1\272" => 'video/mpeg',
|
|
|
|
"\0\0\1\6" => 'application/x-executable-file',
|
|
|
|
"\0\0\201\154" => 'application/x-apl-workspace',
|
|
|
|
"\0\0\377\145" => 'application/x-library-file',
|
|
|
|
"\0\0\377\155" => 'application/data',
|
|
|
|
"\0\0\3\347" => 'application/x-library-file',
|
|
|
|
"\0\0\3\363" => 'application/x-executable-file',
|
|
|
|
"\0\144\163\56" => 'audio/basic',
|
|
|
|
"\0\1\22\127" => 'application/core',
|
|
|
|
"\0\22\326\207" => 'image/x11',
|
|
|
|
"\0\3\233\355" => 'application/data',
|
|
|
|
"\0\3\233\356" => 'application/data',
|
|
|
|
"\0\5\26\0" => 'application/data',
|
|
|
|
"\0\5\26\7" => 'application/data',
|
|
|
|
"\0\5\61\142" => 'application/x-db',
|
|
|
|
"\0\6\25\141" => 'application/x-db',
|
|
|
|
"\103\124\115\106" => 'audio/x-cmf',
|
|
|
|
"\105\115\117\104" => 'audio/x-emod',
|
|
|
|
"\106\106\111\114" => 'font/ttf',
|
|
|
|
"\106\117\116\124" => 'font/x-vfont',
|
|
|
|
"\107\104\102\115" => 'application/x-gdbm',
|
|
|
|
"\107\111\106\70" => 'image/gif',
|
|
|
|
"\10\16\12\17" => 'application/data',
|
|
|
|
"\110\120\101\113" => 'application/data',
|
|
|
|
"\111\111\116\61" => 'image/tiff',
|
|
|
|
"\111\111\52\0" => 'image/tiff',
|
|
|
|
"\114\104\110\151" => 'application/data',
|
|
|
|
"\114\127\106\116" => 'font/type1',
|
|
|
|
"\115\115\0\52" => 'image/tiff',
|
|
|
|
"\115\117\126\111" => 'video/x-sgi-movie',
|
|
|
|
"\115\124\150\144" => 'audio/midi',
|
|
|
|
"\115\247\356\350" => 'font/x-hp-windows',
|
|
|
|
"\116\124\122\113" => 'audio/x-multitrack',
|
|
|
|
"\120\113\3\4" => 'application/zip',
|
|
|
|
"\122\111\106\106" => 'audio/x-wav',
|
|
|
|
"\122\141\162\41" => 'application/x-rar',
|
|
|
|
"\123\121\123\110" => 'application/data',
|
|
|
|
"\124\101\104\123" => 'application/x-tads-game',
|
|
|
|
"\125\103\62\32" => 'application/data',
|
|
|
|
"\125\116\60\65" => 'audio/x-mikmod-uni',
|
|
|
|
"\12\17\10\16" => 'application/data',
|
|
|
|
"\131\246\152\225" => 'x/x-image-sun-raster',
|
|
|
|
"\145\377\0\0" => 'application/x-ar',
|
|
|
|
"\150\163\151\61" => 'image/x-jpeg-proprietary',
|
|
|
|
"\16\10\17\12" => 'application/data',
|
|
|
|
"\177\105\114\106" => 'application/x-executable-file',
|
|
|
|
"\17\12\16\10" => 'application/data',
|
|
|
|
"\1\130\41\246" => 'application/core',
|
|
|
|
"\1\146\143\160" => 'font/x-pcf',
|
|
|
|
"\211\120\116\107" => 'image/x-png',
|
|
|
|
"\23\127\232\316" => 'application/x-gdbm',
|
|
|
|
"\23\172\51\104" => 'font/x-sunos-news',
|
|
|
|
"\23\172\51\107" => 'font/x-sunos-news',
|
|
|
|
"\23\172\51\120" => 'font/x-sunos-news',
|
|
|
|
"\23\172\51\121" => 'font/x-sunos-news',
|
|
|
|
"\24\2\131\31" => 'font/x-libgrx',
|
|
|
|
"\260\61\63\140" => 'application/x-bootable',
|
|
|
|
"\2\10\1\10" => 'application/x-executable-file',
|
|
|
|
"\2\10\1\6" => 'application/x-executable-file',
|
|
|
|
"\2\10\1\7" => 'application/x-executable-file',
|
|
|
|
"\2\10\377\145" => 'application/x-library-file',
|
|
|
|
"\2\12\1\10" => 'application/x-executable-file',
|
|
|
|
"\2\12\1\7" => 'application/x-executable-file',
|
|
|
|
"\2\12\377\145" => 'application/x-library-file',
|
|
|
|
"\2\13\1\10" => 'application/x-executable-file',
|
|
|
|
"\2\13\1\13" => 'application/x-executable-file',
|
|
|
|
"\2\13\1\15" => 'application/x-library-file',
|
|
|
|
"\2\13\1\16" => 'application/x-library-file',
|
|
|
|
"\2\13\1\6" => 'application/x-object-file',
|
|
|
|
"\2\13\1\7" => 'application/x-executable-file',
|
|
|
|
"\2\14\1\10" => 'application/x-executable-file',
|
|
|
|
"\2\14\1\13" => 'application/x-executable-file',
|
|
|
|
"\2\14\1\14" => 'application/x-lisp',
|
|
|
|
"\2\14\1\15" => 'application/x-library-file',
|
|
|
|
"\2\14\1\16" => 'application/x-library-file',
|
|
|
|
"\2\14\1\6" => 'application/x-executable-file',
|
|
|
|
"\2\14\1\7" => 'application/x-executable-file',
|
|
|
|
"\2\14\377\145" => 'application/x-library-file',
|
|
|
|
"\2\20\1\10" => 'application/x-executable-file',
|
|
|
|
"\2\20\1\13" => 'application/x-executable-file',
|
|
|
|
"\2\20\1\15" => 'application/x-library-file',
|
|
|
|
"\2\20\1\16" => 'application/x-library-file',
|
|
|
|
"\2\20\1\6" => 'application/x-object-file',
|
|
|
|
"\2\20\1\7" => 'application/x-executable-file',
|
|
|
|
"\2\24\1\10" => 'application/x-executable-file',
|
|
|
|
"\2\24\1\13" => 'application/x-executable-file',
|
|
|
|
"\2\24\1\15" => 'application/x-object-file',
|
|
|
|
"\2\24\1\16" => 'application/x-library-file',
|
|
|
|
"\2\24\1\6" => 'application/x-object-file',
|
|
|
|
"\2\24\1\7" => 'application/x-executable-file',
|
|
|
|
"\361\60\100\273" => 'image/x-cmu-raster',
|
|
|
|
"\366\366\366\366" => 'application/x-pc-floppy',
|
|
|
|
"\377\106\117\116" => 'font/x-dos',
|
|
|
|
"\41\74\141\162" => 'application/x-ar',
|
|
|
|
"\43\41\11\57" => 'text/script',
|
|
|
|
"\43\41\40\57" => 'text/script',
|
|
|
|
"\52\123\124\101" => 'application/data',
|
|
|
|
"\52\52\52\40" => 'text/x-patch',
|
|
|
|
"\56\162\141\375" => 'audio/x-pn-realaudio',
|
|
|
|
"\56\163\156\144" => 'audio/basic',
|
|
|
|
"\61\143\167\40" => 'application/data',
|
|
|
|
"\61\276\0\0" => 'text/vnd.ms-word',
|
|
|
|
"\62\62\67\70" => 'application/data',
|
|
|
|
"\74\115\115\114" => 'application/x-framemaker',
|
|
|
|
"\74\141\162\76" => 'application/x-ar',
|
|
|
|
),
|
|
|
|
3 => array(
|
|
|
|
"\102\132\150" => 'application/x-bzip2',
|
|
|
|
"\106\101\122" => 'audio/mod',
|
|
|
|
"\115\124\115" => 'audio/x-multitrack',
|
|
|
|
"\123\102\111" => 'audio/x-sbi',
|
|
|
|
"\124\117\103" => 'audio/x-toc',
|
|
|
|
"\12\107\114" => 'application/data',
|
|
|
|
"\146\154\143" => 'application/x-font',
|
|
|
|
"\146\154\146" => 'font/x-figlet',
|
|
|
|
"\33\105\33" => 'image/x-pcl-hp',
|
|
|
|
"\33\143\33" => 'application/data',
|
|
|
|
"\377\377\174" => 'application/data',
|
|
|
|
"\377\377\176" => 'application/data',
|
|
|
|
"\377\377\177" => 'application/data',
|
|
|
|
"\43\41\40" => 'text/script',
|
|
|
|
"\43\41\57" => 'text/script',
|
|
|
|
"\4\45\41" => 'application/postscript',
|
|
|
|
"\55\150\55" => 'application/data',
|
|
|
|
"\61\143\167" => 'application/data',
|
|
|
|
),
|
|
|
|
2 => array(
|
|
|
|
"\0\0" => 'application/x-executable-file',
|
|
|
|
"\102\115" => 'image/x-bmp',
|
|
|
|
"\102\132" => 'application/x-bzip',
|
|
|
|
"\111\103" => 'image/x-ico',
|
|
|
|
"\112\116" => 'audio/x-669-mod',
|
|
|
|
"\115\132" => 'application/x-ms-dos-executable',
|
|
|
|
"\120\61" => 'image/x-portable-bitmap',
|
|
|
|
"\120\62" => 'image/x-portable-graymap',
|
|
|
|
"\120\63" => 'image/x-portable-pixmap',
|
|
|
|
"\120\64" => 'image/x-portable-bitmap',
|
|
|
|
"\120\65" => 'image/x-portable-graymap',
|
|
|
|
"\120\66" => 'image/x-portable-pixmap',
|
|
|
|
"\151\146" => 'audio/x-669-mod',
|
|
|
|
"\161\307" => 'application/x-cpio',
|
|
|
|
"\166\377" => 'application/data',
|
|
|
|
"\1\110" => 'application/x-executable-file',
|
|
|
|
"\1\111" => 'application/x-executable-file',
|
|
|
|
"\1\124" => 'application/data',
|
|
|
|
"\1\125" => 'application/x-executable-file',
|
|
|
|
"\1\160" => 'application/x-executable-file',
|
|
|
|
"\1\161" => 'application/x-executable-file',
|
|
|
|
"\1\175" => 'application/x-executable-file',
|
|
|
|
"\1\177" => 'application/x-executable-file',
|
|
|
|
"\1\20" => 'application/x-executable-file',
|
|
|
|
"\1\203" => 'application/x-executable-file',
|
|
|
|
"\1\21" => 'application/x-executable-file',
|
|
|
|
"\1\210" => 'application/x-executable-file',
|
|
|
|
"\1\217" => 'application/x-object-file',
|
|
|
|
"\1\224" => 'application/x-executable-file',
|
|
|
|
"\1\227" => 'application/x-executable-file',
|
|
|
|
"\1\332" => 'x/x-image-sgi',
|
|
|
|
"\1\36" => 'font/x-vfont',
|
|
|
|
"\1\6" => 'application/x-executable-file',
|
|
|
|
"\307\161" => 'application/x-bcpio',
|
|
|
|
"\313\5" => 'application/data',
|
|
|
|
"\352\140" => 'application/x-arj',
|
|
|
|
"\367\131" => 'font/x-tex',
|
|
|
|
"\367\203" => 'font/x-tex',
|
|
|
|
"\367\312" => 'font/x-tex',
|
|
|
|
"\36\1" => 'font/x-vfont',
|
|
|
|
"\375\166" => 'application/x-lzh',
|
|
|
|
"\376\166" => 'application/data',
|
|
|
|
"\377\145" => 'application/data',
|
|
|
|
"\377\155" => 'application/data',
|
|
|
|
"\377\166" => 'application/data',
|
|
|
|
"\377\330" => 'image/jpeg',
|
|
|
|
"\377\37" => 'application/data',
|
|
|
|
"\37\213" => 'application/x-gzip',
|
|
|
|
"\37\235" => 'application/compress',
|
|
|
|
"\37\236" => 'application/data',
|
|
|
|
"\37\237" => 'application/data',
|
|
|
|
"\37\240" => 'application/data',
|
|
|
|
"\37\36" => 'application/data',
|
|
|
|
"\37\37" => 'application/data',
|
|
|
|
"\37\377" => 'application/data',
|
|
|
|
"\45\41" => 'application/postscript',
|
|
|
|
"\4\66" => 'font/linux-psf',
|
|
|
|
"\57\57" => 'text/cpp',
|
|
|
|
"\5\1" => 'application/x-locale',
|
|
|
|
"\6\1" => 'application/x-executable-file',
|
|
|
|
"\6\2" => 'application/x-alan-adventure-game',
|
|
|
|
"\7\1" => 'application/x-executable-file',
|
|
|
|
),
|
|
|
|
),
|
|
|
|
1 => array(
|
|
|
|
3 => array(
|
|
|
|
"\120\116\107" => 'image/x-png',
|
|
|
|
"\127\120\103" => 'text/vnd.wordperfect',
|
|
|
|
),
|
|
|
|
),
|
|
|
|
2 => array(
|
|
|
|
6 => array(
|
|
|
|
"\55\154\150\64\60\55" => 'application/x-lha',
|
|
|
|
),
|
|
|
|
5 => array(
|
|
|
|
"\55\154\150\144\55" => 'application/x-lha',
|
|
|
|
"\55\154\150\60\55" => 'application/x-lha',
|
|
|
|
"\55\154\150\61\55" => 'application/x-lha',
|
|
|
|
"\55\154\150\62\55" => 'application/x-lha',
|
|
|
|
"\55\154\150\63\55" => 'application/x-lha',
|
|
|
|
"\55\154\150\64\55" => 'application/x-lha',
|
|
|
|
"\55\154\150\65\55" => 'application/x-lha',
|
|
|
|
"\55\154\172\163\55" => 'application/x-lha',
|
|
|
|
"\55\154\172\64\55" => 'application/x-lha',
|
|
|
|
"\55\154\172\65\55" => 'application/x-lha',
|
|
|
|
),
|
|
|
|
2 => array(
|
|
|
|
"\0\21" => 'font/x-tex-tfm',
|
|
|
|
"\0\22" => 'font/x-tex-tfm',
|
|
|
|
),
|
|
|
|
),
|
|
|
|
4 => array(
|
|
|
|
4 => array(
|
|
|
|
"\155\144\141\164" => 'video/quicktime',
|
|
|
|
"\155\157\157\166" => 'video/quicktime',
|
|
|
|
"\160\151\160\145" => 'application/data',
|
|
|
|
"\160\162\157\146" => 'application/data',
|
|
|
|
),
|
|
|
|
2 => array(
|
|
|
|
"\257\21" => 'video/fli',
|
|
|
|
"\257\22" => 'video/flc',
|
|
|
|
),
|
|
|
|
),
|
|
|
|
6 => array(
|
|
|
|
18 => array(
|
|
|
|
"\45\41\120\123\55\101\144\157\142\145\106\157\156\164\55\61\56\60" => 'font/type1',
|
|
|
|
),
|
|
|
|
),
|
|
|
|
7 => array(
|
|
|
|
22 => array(
|
|
|
|
"\357\20\60\60\60\60\60\60\60\60\60\60\60\60\60\60\60\60\60\60\60\60" => 'application/core',
|
|
|
|
),
|
|
|
|
4 => array(
|
|
|
|
"\0\105\107\101" => 'font/x-dos',
|
|
|
|
"\0\126\111\104" => 'font/x-dos',
|
|
|
|
),
|
|
|
|
),
|
|
|
|
8 => array(
|
|
|
|
4 => array(
|
|
|
|
"\23\172\53\105" => 'font/x-sunos-news',
|
|
|
|
"\23\172\53\110" => 'font/x-sunos-news',
|
|
|
|
),
|
|
|
|
),
|
|
|
|
10 => array(
|
|
|
|
25 => array(
|
|
|
|
"\43\40\124\150\151\163\40\151\163\40\141\40\163\150\145\154\154\40\141\162\143\150\151\166\145" => 'application/x-shar',
|
|
|
|
),
|
|
|
|
),
|
|
|
|
20 => array(
|
|
|
|
4 => array(
|
|
|
|
"\107\111\115\120" => 'application/x-gimp-brush',
|
|
|
|
"\107\120\101\124" => 'application/x-gimp-pattern',
|
|
|
|
"\375\304\247\334" => 'application/x-zoo',
|
|
|
|
),
|
|
|
|
),
|
|
|
|
21 => array(
|
|
|
|
8 => array(
|
|
|
|
"\41\123\103\122\105\101\115\41" => 'audio/x-st2-mod',
|
|
|
|
),
|
|
|
|
),
|
|
|
|
24 => array(
|
|
|
|
4 => array(
|
|
|
|
"\0\0\352\153" => 'application/x-dump',
|
|
|
|
"\0\0\352\154" => 'application/x-dump',
|
|
|
|
"\0\0\352\155" => 'application/data',
|
|
|
|
"\0\0\352\156" => 'application/data',
|
|
|
|
),
|
|
|
|
),
|
|
|
|
65 => array(
|
|
|
|
4 => array(
|
|
|
|
"\106\106\111\114" => 'font/ttf',
|
|
|
|
"\114\127\106\116" => 'font/type1',
|
|
|
|
),
|
|
|
|
),
|
|
|
|
257 => array(
|
|
|
|
8 => array(
|
|
|
|
"\165\163\164\141\162\40\40\60" => 'application/x-gtar',
|
|
|
|
),
|
|
|
|
6 => array(
|
|
|
|
"\165\163\164\141\162\60" => 'application/x-tar',
|
|
|
|
),
|
|
|
|
),
|
|
|
|
0774 => array(
|
|
|
|
2 => array(
|
|
|
|
"\332\276" => 'application/data',
|
|
|
|
),
|
|
|
|
),
|
|
|
|
1080 => array(
|
|
|
|
4 => array(
|
|
|
|
"\103\104\70\61" => 'audio/x-oktalyzer-mod',
|
|
|
|
"\106\114\124\64" => 'audio/x-startracker-mod',
|
|
|
|
"\115\41\113\41" => 'audio/x-protracker-mod',
|
|
|
|
"\115\56\113\56" => 'audio/x-protracker-mod',
|
|
|
|
"\117\113\124\101" => 'audio/x-oktalyzer-mod',
|
|
|
|
"\61\66\103\116" => 'audio/x-taketracker-mod',
|
|
|
|
"\63\62\103\116" => 'audio/x-taketracker-mod',
|
|
|
|
"\64\103\110\116" => 'audio/x-fasttracker-mod',
|
|
|
|
"\66\103\110\116" => 'audio/x-fasttracker-mod',
|
|
|
|
"\70\103\110\116" => 'audio/x-fasttracker-mod',
|
|
|
|
),
|
|
|
|
),
|
|
|
|
2048 => array(
|
|
|
|
7 => array(
|
|
|
|
"\120\103\104\137\111\120\111" => 'x/x-photo-cd-pack-file',
|
|
|
|
),
|
|
|
|
),
|
|
|
|
2080 => array(
|
|
|
|
29 => array(
|
|
|
|
"\115\151\143\162\157\163\157\146\164\40\105\170\143\145\154\40\65\56\60\40\127\157\162\153\163\150\145\145\164" => 'application/vnd.ms-excel',
|
|
|
|
),
|
|
|
|
27 => array(
|
|
|
|
"\115\151\143\162\157\163\157\146\164\40\127\157\162\144\40\66\56\60\40\104\157\143\165\155\145\156\164" => 'text/vnd.ms-word',
|
|
|
|
),
|
|
|
|
26 => array(
|
|
|
|
"\104\157\143\165\155\145\156\164\157\40\115\151\143\162\157\163\157\146\164\40\127\157\162\144\40\66" => 'text/vnd.ms-word',
|
|
|
|
),
|
|
|
|
),
|
|
|
|
2112 => array(
|
|
|
|
9 => array(
|
|
|
|
"\115\123\127\157\162\144\104\157\143" => 'text/vnd.ms-word',
|
|
|
|
),
|
|
|
|
),
|
|
|
|
2114 => array(
|
|
|
|
5 => array(
|
|
|
|
"\102\151\146\146\65" => 'application/vnd.ms-excel',
|
|
|
|
),
|
|
|
|
),
|
|
|
|
4098 => array(
|
|
|
|
7 => array(
|
|
|
|
"\104\117\123\106\117\116\124" => 'font/x-dos',
|
|
|
|
),
|
|
|
|
),
|
|
|
|
68158480 => array(
|
|
|
|
2 => array(
|
|
|
|
"\23\177" => 'application/x-filesystem',
|
|
|
|
"\23\217" => 'application/x-filesystem',
|
|
|
|
"\44\150" => 'application/x-filesystem',
|
|
|
|
"\44\170" => 'application/x-filesystem',
|
|
|
|
),
|
|
|
|
),
|
|
|
|
70779960 => array(
|
|
|
|
2 => array(
|
|
|
|
"\357\123" => 'application/x-linux-ext2fs',
|
|
|
|
),
|
|
|
|
),
|
|
|
|
);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @deprecated use static parameter mime_magic::$mime_magic_file
|
|
|
|
* @return array
|
|
|
|
*/
|
|
|
|
public static function get_mime_magic_file()
|
|
|
|
{
|
|
|
|
return self::$mime_magic_file;
|
2003-10-03 13:58:51 +02:00
|
|
|
}
|
2009-04-17 08:25:33 +02:00
|
|
|
}
|