Hello EisFuX,
Ja, die Funktion muss hier in PHP erstellt werden, weil sie nachher im PHP-Code eingesetzt werden soll auf Plattformen, bei denen außer PHP nichts anderes zur Verfügung steht.
Sonst wäre es ja einfach.
Kann man irgendwo öffentlich nachlesen, worum es bei dieser Funktion eigentlich geht?
"Dateitypenerkennung"? Die ist doch mit MIME-Type-Prüfung sowieso nicht verlässlich machbar.
Ich würde da eher auf sowas wie "Magic Bytes" setzen ...
Ich denke, dass wir da schon von derselben Sache reden. Der MIME-Type der Datei wird mittels der "magic numbers" ermittelt. Das ist bisher relativ sicher gewesen.
Es gibt eine recht ausführliche Beschreibung des Verfahrens beim Heise-Verlag:
http://www.heise.de/ix/artikel/2002/01/139/,
den Versuch einer Funktion von Phillip Berndt:
http://www.pberndt.com/additional/pberndt_history/Pberndt V3/www.pberndt.com/Projekte.Codesnipplets.Snipplets.MIME+Typ+ermitteln.html,
der aber schon bei der Zeile
if($mimeLine[0] != '#' && trim($mimeLine))
mit gefährlichen "Programmiertricks" arbeitet und mMn eine verkehrte Reihenfolge der Operationen wählt, um wirklich mit einem formatfreien magic.mime-File zurechtzukommen. Das Script nimmt dann im weiteren Verlauf ähnliche Vereinfachungen der Definition, wie sie von Michael Riepe beschrieben wird, vor. Das führt zu einigen Erkennungsfehlern.
Außerdem wird "application/x-object" als Standard-Rückgabewert gewählt, anstelle von false, was mMn bei Nichterkennung in PHP angemessener wäre.
Ich bin noch nicht ganz durch die eval()-Konstrukte durchgestiegen. Aber als Vorlage kann diese Lösung schon gelten.
Einige weitere Ansätze habe ich gesammelt, aber leider im Moment nur als Kopie auf der Platte vorliegen, ohne dass ich dort die Quell-URLs vermerkt hätte. Meinen dicken fetten Ordner zu diesem Thema habe ich leider zuhause gelassen...
Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg