hallo
leider ist die funktion mime_type_content nicht verüfgbar.
nun habe ich im inet eine aternative gefunden, die ich aber wegen deren kompexität, und fehlenden profi-php wissenn, nicht zurecht finde
ich habe diese datei mime.php genannt.
nun habe ich über die variable $file eine csv datei angeben.
jedoch gibt der mir nur dann als echo folgendes zurück:
application/x-object
application/x-object
application/x-object
application/x-object
application/x-object
application/x-object
leide sind meine kenntnisse nicht so gut um dieses script zu verstehen, kan mir da bitte jmd. helfen?
leider ist die funktion mime_type_content nicht verüfgbar.
nun habe ich im inet eine aternative gefunden, die ich aber wegen deren kompexität, und fehlenden profi-php wissenn, nicht zurecht finde
PHP-Code:
<?php
/*
Magic mime file interpreter
Copyright (c) 2004 by Phillip Berndt
Version 1.0
*/
if(!function_exists('mime_content_type'))
{
function mime_content_type($file)
{
static $mimeData;
if(!isset($mimeData))
{
$mimeFile = file('./magic.mime');
foreach($mimeFile as $mimeLine)
if($mimeLine[0] != '#' && trim($mimeLine))
{
if(preg_match('/^(S+?)s+(S+?)s+(S+)(s+(.+?))?$/si', $mimeLine, $regex_mimeDataSet))
{
$mimeDataSet['offset'] = str_replace('>', '', $regex_mimeDataSet[1]);
$indicator = $regex_mimeDataSet[3];
switch($regex_mimeDataSet[2])
{
case 'string':
$indicator = str_replace(' ', ' ', $indicator);
$indicator = str_replace('<', '<', $indicator);
$indicator = str_replace('>', '>', $indicator);
$indicator = str_replace('r', "r", $indicator);
$indicator = str_replace('n', "n", $indicator);
$indicator = preg_replace('/\\([0-9]{3})/e', 'chr($1);', $indicator);
break;
case 'byte':
$indicator = pack('c', @eval('return '.$indicator.';'));
break;
case 'short':
$indicator = pack('s', @eval('return '.$indicator.';'));
break;
case 'beshort':
$indicator = pack('n', @eval('return '.$indicator.';'));
break;
case 'leshort':
$indicator = pack('v', @eval('return '.$indicator.';'));
break;
case 'belong':
$indicator = pack('N', @eval('return '.$indicator.';'));
break;
case 'lelong':
$indicator = pack('V', @eval('return '.$indicator.';'));
break;
case 'long':
$indicator = pack('l', @eval('return '.$indicator.';'));
break;
}
$mimeDataSet['indicator'] = $indicator;
$mimeDataSet['mime'] = str_replace("r", '', $regex_mimeDataSet[5]);
$mimeData[] = $mimeDataSet;
}
}
}
$file_content = file_get_contents($file);
$retVal = 'application/x-object';
foreach($mimeData as $key => $mimeTest)
{
$testStr = substr($file_content, $mimeTest['offset'], strlen($mimeTest['indicator']));
if($testStr == $mimeTest['indicator'])
{
$mimeType = $mimeTest['mime'];
if($mimeType == '')
{
while($mimeType == '')
$mimeType = $mimeData[++$key]['mime'];
}
$retVal = $mimeType;
}
}
return $retVal;
}
}
echo(mime_content_type('./testsvr.zip').'<br/>'); // Gibt application/x-zip aus
echo(mime_content_type('./Beispiel.jpg').'<br/>'); // Gibt image/jpeg aus
echo(mime_content_type('./winkel_wurf.fla').'<br/>'); // Gibt application/x-object aus
echo(mime_content_type('./bzcat.exe').'<br/>'); // Gibt application/x-do************ec
echo(mime_content_type('./option_group.htm').'<br/>'); // Gibt text/html aus
echo(mime_content_type(__FILE__).'<br/>'); // Gibt application/x-httpd-php-5 aus
?>
nun habe ich über die variable $file eine csv datei angeben.
jedoch gibt der mir nur dann als echo folgendes zurück:
application/x-object
application/x-object
application/x-object
application/x-object
application/x-object
application/x-object
leide sind meine kenntnisse nicht so gut um dieses script zu verstehen, kan mir da bitte jmd. helfen?
Kommentar