• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Binär- und Textdateien unterscheiden

jeko

Lounge-Member
Hallo zusammen,

Ich stehe vor einem heiklen Problem. Ich würde gerne per Script überprüfen können, ob eine Datei binär ist oder nur aus "Textzeichen" besteht. Hier ist ja schon mal die Definition das Problem. Binär- und Textdateien werden unter Systemen wie Unix ja überhaupt nicht unterschieden, unter Win32-Systemen jedoch schon. Gängige Definition ist z.B. dass die Datei nur aus ASCII-Zeichen bestehen darf. Eigene Tests haben dann ergeben, dass diese Prüfung spätestens bei Zeichen > 127 (Umlaute äöü etc.) fehlschlägt. Auch das \0-Byte ist nicht in jeder binären Datei vorhanden....

Gibt's da wirklich nichts?

Gruss jeko
 
Die Unterscheidung zwischen Text- und Binärdateien ist nicht ohne weiteres möglich, da es keine vorgeschriebene Metainformation gibt, die eine eindeutige Zuordnung ermöglicht.

Unix unterscheidet übrigens sehr wohl zwischen Text und Binärdateien. Hier gibt es sogar ein eigenes Kommando, welches den Dateityp klassifiziert. Dieses nennt sich einfach "file". Ein Aufruf von "file test.php" liefert z.B. "PHP script text", selbst wenn ich den Dateinamen auf test.exe ändere.

Das Programm arbeitet intern mit sogenannten Magic Codes, welche über eine Datei konfigurier- und erweiterbar sind. Diese enthalten Informationen, wie eine Datei, bzw. ein Dateityp erkannt werden kann. Ein GIF wird z.B. anhand des Strings GIF8 am Anfang der Datei erkannt. Eine andere Möglichkeit, als diese Schätzmethode ist mir nicht bekannt.
 
[ot]*mein gott*http://www.bbspot.com/News/2004/10/extension_quiz.php*/mein gott* Achja: Ich bin .jpg[/ot]

Hab mir schon irgendwie gedacht dass das nicht wirklich geht. Allerdings würde das einige Problemchen die ich bei der Bedienung von Macs habe erklären :)

Das Problem der Unterscheidung bleibt... Ich denke das Beste wird eine Dateiendungsprüfung sein, mit Datenbank die ein paar tausend Textformate gespeichert hat....
 
Da fällt mir ein... PHP mime_content_type arbeitet doch auch mit einer Datei namens magic.irgendwas.... Wohl auch magic codes. Wie sicher ist mime_content_type aber? Ich probiers mal aus.
 
Zurück
Oben