Heim  >  Artikel  >  Backend-Entwicklung  >  So konvertieren Sie Binärdaten in PHP in ein Byte-Array

So konvertieren Sie Binärdaten in PHP in ein Byte-Array

PHPz
PHPzOriginal
2023-04-18 14:10:27730Durchsuche

In der Entwicklung müssen wir häufig Daten in Binärform übertragen. Zu diesem Zeitpunkt müssen wir die Binärdaten in ein Byte-Array konvertieren, damit die Daten während des Übertragungsprozesses stabiler und effizienter übertragen werden können. In PHP lässt sich diese Funktion über die Pack-Funktion und die Entpack-Funktion erreichen. Lassen Sie uns gemeinsam etwas darüber lernen.

  1. Pack-Funktion

Pack-Funktion ist eine binäre Datenverpackungsfunktion in PHP. Sie kann die angegebenen Daten gemäß dem angegebenen Format in eine Binärzeichenfolge packen. Darunter wird der Formatzeichenfolgenparameter entsprechend der zu packenden Bytereihenfolge angegeben, und jedes Formatzeichen entspricht einem Datentyp. Das Folgende ist die grundlegende Verwendung der Pack-Funktion:

string pack ( string $format [, mixed $args [, mixed $... ]] )

Unter diesen ist der Parameter $format die Formatzeichenfolge und $args die Daten, die gepackt werden müssen.

Das Folgende ist ein Beispiel, um die Verwendung der Pack-Funktion zu veranschaulichen:

$binary_str = pack("C*", 67, 119, 105, 107, 105);
echo $binary_str;

In diesem Beispiel bedeutet die Formatzeichenfolge „C*“ das Packen nach Zeichen, und die Argumentparameter sind 67, 119, 105, 107, 105. Das Ausführungsergebnis ist:

Cwiki

Das heißt, die aus dem Zeichenarray 67, 119, 105, 107, 105 bestehende Zeichenfolge wird im Zeichenmodus gepackt und die Zeichenfolge „Cwiki“ zurückgegeben.

Zusätzlich zur Zeichenmethode unterstützt die Packfunktion auch eine Vielzahl anderer Packmethoden, wie z. B. Ganzzahl (I), lange Ganzzahl (L), doppelte Genauigkeit (d) usw. Im Folgenden sind einige häufig verwendete Formatzeichen aufgeführt:

  • a: nullterminierte Zeichenfolge
  • A: mit Leerzeichen gefüllte Zeichenfolge
  • c: vorzeichenbehaftetes Zeichen
  • C: vorzeichenloses Zeichen
  • s: vorzeichenbehafteter Kurztext (immer 16 Bit, maschinell). Byte-Reihenfolge)
  • S: Unsigned Short (immer 16 Bit, Maschinenbyte-Reihenfolge)
  • n: Unsigned Short (immer 16 Bit, Big-Endian-Byte-Reihenfolge)
  • v: Unsigned Short (immer 16 Bit, Little-Endian-Byte-Reihenfolge)
  • i: vorzeichenbehaftete Ganzzahl (maschinenabhängige Größe und Byte-Reihenfolge)
  • I: vorzeichenlose Ganzzahl (maschinenabhängige Größe und Byte-Reihenfolge)
  • l: vorzeichenbehaftete lange Zahl (immer 32 Bit, maschinelle Byte-Reihenfolge)
  • L: vorzeichenlose lange Zahl ( immer 32 Bit, Maschinenbyte-Reihenfolge)
  • N: unsigned long (immer 32 Bit, Big-Endian-Bytereihenfolge)
  • V: unsigned long (immer 32 Bit, Little-Endian-Bytereihenfolge)
  • f: Float (maschinenabhängige Größe und Darstellung)
  • d: double (maschinenabhängige Größe und Darstellung)
  1. Unpack-Funktion

Die Entpackfunktion ist eine Funktion zum Entpacken von Binärdaten in PHP. Sie kann Binärdatenzeichenfolgen in einen angegebenen Datentyp entpacken. Wie die Pack-Funktion können wir Binärdaten in Variablen entpacken, die verschiedene Datentypen darstellen, indem wir Formatzeichenfolgenparameter und Datenzeichenfolgen angeben. Das Folgende ist die grundlegende Verwendung der Entpackfunktion:

array unpack ( string $format , string $data )

Unter diesen ist der Parameter $format die Formatzeichenfolge und $data die Daten, die entpackt werden müssen.

Das Folgende ist ein Beispiel, um die Verwendung der Entpackfunktion zu veranschaulichen:

$binary_str = "Cwiki";
$unpacked = unpack("C*",$binary_str);
print_r($unpacked);

In diesem Beispiel ist $binary_str die binäre Datenzeichenfolge „Cwiki“ und der $format-Parameter ist „C*“, was Entpacken in Zeichen bedeutet Modus. Das Ausführungsergebnis ist:

Array
(
    [1] => 67
    [2] => 119
    [3] => 105
    [4] => 107
    [5] => 105
)

Das heißt, die binäre Datenzeichenfolge „Cwiki“ wird im Zeichenmodus entpackt und ein Array erhalten, das verschiedene Zeichen darstellt.

Neben der Zeichenmethode unterstützt die Entpackfunktion auch eine Vielzahl anderer Entpackmethoden. Die Entsprechung zwischen den Formatzeichen und den Formatzeichen der Packfunktion ist eins zu eins.

Zusammenfassend lässt sich sagen, dass wir durch die kombinierte Verwendung der Pack-Funktion und der Entpack-Funktion beliebige Daten in eine Binärzeichenfolge umwandeln und verschiedene Datentypen aus der Binärzeichenfolge entpacken können, wodurch wir die PHP-Binärkonvertierung in eine Byte-Array-Funktion realisieren.

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie Binärdaten in PHP in ein Byte-Array. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn