Schreiben von Binärdaten in eine Datei, buchstäblich

Habe ich ein array von ganzen zahlen

Array
(
    [0] => Array
        (
            [0] => 1531412763
            [1] => 1439959339
            [2] => 76
            [3] => 122
            [4] => 200
            [5] => 4550
            [6] => 444
        )
...

Und so weiter, ich nehme an, wenn ich Blick auf es, als ob es ein Datenbank - die Elemente der äußeren Arrays sind die Zeilen und die Elemente der inneren arrays sind die Spalten.

Will ich speichern, werden die Informationen in einer Datei, so dass ich in der Lage sein, um es später, aber ich wollen, speichern Sie es als Binär-Daten, um Speicherplatz zu sparen. Im Grunde, wenn ich schreiben Sie den ersten integer aus dem Beispiel 1531412763 auf eine Datei dauert es bis zu 10 bytes, aber wenn ich könnte, speichern Sie es als eine Ganzzahl, die es dauern würde, bis 4 bytes.

Ich habe mir eine Reihe von anderen Antworten, die alle vorschlagen, mit fwrite ich kann nicht verstehen, wie in einer solchen Art und Weise?

  • pack ?
  • Wenn Sie wirklich brauchen, um Speicherplatz zu sparen, warum nicht komprimieren die Daten zu? Könnte genauso gut an dieser Stelle.
  • ja das ist genau das, was ich brauchte, aber muss ich nennen pack auf jeden einzelnen Wert oder gibt es einen einfacheren Weg?
  • Sie können nicht pack($array) wie es ist. Aber man kann mehrere Argumente, um die pack Funktion und Verwendung von Repeatern ( * ), nach dem format. Einige Sache wie pack('i*', $int_1, $int_2,....) für die Verpackung mehrere Ganzzahlen. Sie haben, um das array nach dem format, das Sie möchten.
  • Also im Grunde, wie ich es zu tun habe, ist pack('LLSSSQ', $row[0], ..., $row[6]) dann schreiben, dass Sie als eine einzige Zeile in der Datei und beim Lesen muss ich verwenden unpack mit dem gleichen format geben wird, mir das array zurück. Das ist perfekt, Sie können es als Antwort für jemand anderes in meiner situation.
  • Mögliche Duplikate von Schreiben Sie die Binär-Datei in PHP

InformationsquelleAutor php_nub_qq | 2016-10-04
Schreibe einen Kommentar