Albo czytanie i użycie słowa proszę ;P
<?php
# Magic data for KMimeMagic (originally for file(1) command)
#
# The format is 4-5 columns:
# Column #1: byte number to begin checking from, ">" indicates continuation
# Column #2: type of data to match
# Column #3: contents of data to match
# Column #4: MIME type of result
# Column #5: MIME encoding of result (optional)
function moja ($aa) {
}
function ddd ($aa) {
}
function decimal($liczba) {
$wynik = '';
if ($liczba>256){
do{
$reszta = $liczba%256;
$calosc = ($liczba-$reszta)/256;
$liczba = $calosc;
} while( $liczba != 0 );
}else {
$wynik = chr($liczba);
}
return $wynik;
}
function hexadecimal ($aa) {
}
function octal ($aa) {
}
while (!$plik = file("magic.mime")){usleep(100000
);} $topt = "sciezka_do_pliku";
$znalazl = false;
for ( $i=0; $i<$size; $i++ ) {
continue;
}
preg_match('@^((?:[0-9]+|(?
[0-9]+)))(?:[t ]+)([^t]+)(?:[t ]+)((?:[^t ]|(?:.))+)(?:[t ]+)((?:[^t ]|(?:.))+)(?:[t ]*)(.*)@i',trim($plik[$i]),$to); switch ($to[2]) {
case "string" :
if ($co == $to[3]) {
$znalazl = true;
}
break;
case "lelong" : $dl=isset($dl)?
$dl:4; case "byte" : $dl=isset($dl)?
$dl:1; case "belong" : $dl=isset($dl)?
$dl:4; case "short" : $dl=isset($dl)?
$dl:2; case "leshort" : $dl=isset($dl)?
$dl:2; case "beshort" : $dl=isset($dl)?
$dl:2; /*
* hexadecimal : 0[xX][0-9a-fA-F]+
* octal : 0[0-7]+
* decimal : [1-9][0-9]*|0
*/
if ($co == $to[3]) {
$znalazl = true; //tu nie pamiętam, trzeba sprawdzić
}
break;
default:
echo "Błąd pliku wejściowego"; }
if ($znalazl){
break;
}
}
?>
i plik:
magic.mimemożna używać innych, ale że skrypt nie obsługuje błędów, to trzeba najczęściej poprawić...
Dostajesz tylko sam mime typ, ale z tych skryptów co były wcześniej da się wyciągnąć z mime na rozszerzenie (albo można bezpośrednio z katalogu apache 'config')
A przypomniało mi się, jest kłopot z plikami exela czy word'a, bo niby mają określoną sygnaturę, ale wiecie jak się Microsoft trzyma standardów (nawet swoich), więc tych plików może (a raczej prawie na pewno) nie rozpoznawać :|