Analysieren einer Binärdatei in PHP

Binärcode-Datendateien werden verwendet, um in wissenschaftlich genutzten Low-Level-Programmiersprachen wie C zu programmieren, die nicht kohärent in ein Textformat übersetzt werden können.

Der Binärcode muss in einer beliebigen einfachen Sprache zum Speichern eines bestimmten Werts verwendet werden, sobald Sie ihn in einen Texteditor laden, um ihn aufzuzeichnen oder zu lesen.

Eine Binärdatei kann nicht gelesen werden, da sie in Sprachen wie Pascal im unformatierten Binärformat vorliegt. Daher verwenden Webmaster PHP, um die Dateien als Text zu lesen und zu schreiben. Zum Abrufen Ihrer Werte muss eine bestimmte Funktion verwendet werden.

PHP verwendet eine einzigartige Funktion namens unpack (). Nachdem das erste Datentypargument deklariert wurde, müssen Sie ein zweites Argument als Zeichenfolge wiederherstellen und erstellen, aus der Sie die Daten abrufen möchten. Die wiederherstellbaren Daten müssen symbolische Argumente enthalten.

Wenn Sie einfache Sprachen wie C oder Pascal verwenden, ist es üblich, Daten in einer Binärdatei (einem Datensatz, der nicht in Text übersetzt werden kann) zu speichern.

Wenn Sie in der Sprache C den Wert 500 in einer Datei speichern möchten, lautet der Code wie folgt:

 #include int main () {int val = 500; DATEI * fp = fopen ("Datei", "wb"); fwrite (& val, sizeof (int), 1, fp); // speichere Wert in "Datei" fclose (fp); return 0; } 

Wenn Sie diese bestimmte Datei mit einem Texteditor öffnen, ist sie möglicherweise nicht lesbar, da Ihr Wert nicht als Text, sondern in seiner Binärform gespeichert wird.

Wenn Sie jedoch PHP verwenden, ist es häufig erforderlich, von Zeit zu Zeit als Binärdatei gespeicherte Werte abzurufen. PHP liest und schreibt die Dateien jedoch als Text. Zum Abrufen Ihrer Werte muss eine bestimmte Funktion verwendet werden.

Die Lösung:

Die Funktion unpack () kann verwendet werden, um diese Art von Problem zu lösen. Sie müssen zuerst den Datentyp deklarieren, den Sie wiederherstellen möchten, und dann die Zeichenfolge, von der Sie die Daten abrufen möchten.

Die Art der wiederherzustellenden Daten muss mit dem entsprechenden Symbol angegeben werden. Verwenden Sie beispielsweise das Zeichen i, um eine Ganzzahl mit Vorzeichen abzurufen.

Wenn wir also die Datei verwenden, die wir im obigen Beispiel gespeichert haben, ist hier der Code, um unseren Wert abzurufen:

    • Wichtige Notizen:
  • Die Datengröße kann sich je nach Prozessorarchitektur (Sparc, ARM, PowerPC) ändern.
    • Ein in C geschriebenes Programm verwendet Ganzzahlen unterschiedlicher Größe von 32 Bit bis 64 Bit.
    • Die Anordnung der Daten ist möglicherweise nicht identisch. Einige Computer speichern Daten in Big Endian, andere in Little Endian.
    • Die Datengröße kann je nach Compiler variieren
    • Die Entpack-Funktion gibt ein Array zurück, das etwas ausgefeilter ist als das hier als Beispiel angegebene. In unserem Fall befindet sich unser Wert bei einem angeforderten Wert in Offset 1 des Arrays.
  • Datentypen für einen 32-Bit-PC
    • Hier ist eine Tabelle mit den Daten, die von einem C-Programm aufgezeichnet wurden, das für einen 32-Bit-PC kompiliert wurde:
    • char : c
    • nicht signiertes Zeichen : C
    • kurz : s
    • kurz ohne Vorzeichen : S
    • int : ich
    • unsigned int : L
    • Schwimmer : f
    • double : d

Vorherige Artikel Nächster Artikel

Top-Tipps