Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich mit „unpack()' einen PHP-String in ein Byte-Array konvertieren?

Wie kann ich mit „unpack()' einen PHP-String in ein Byte-Array konvertieren?

Susan Sarandon
Susan SarandonOriginal
2024-12-04 06:02:13663Durchsuche

How Can I Convert a PHP String into a Byte Array Using `unpack()`?

Konvertieren eines Strings in ein Byte-Array in PHP

In PHP kann es vorkommen, dass Sie einen String in ein Byte-Array konvertieren müssen, insbesondere wenn Sie mit Systemen kommunizieren, die dies erwarten binäre Datenformate.

GetBytes() Äquivalent in PHP

Ähnlich wie getBytes() in Java Methode bietet PHP die Funktion unpack() an, um diese Aufgabe zu erfüllen. Im Gegensatz zu getBytes(), das ein Byte-Array zurückgibt, das die Unicode-Codepunkte des Strings darstellt, können Sie mit unpack() ein benutzerdefiniertes Format angeben, um bestimmte Daten zu extrahieren.

Entpacken eines Strings in ein Integer-Array

Um ein ganzzahliges Array zu erhalten, das die Bytewerte einer Zeichenfolge darstellt, verwenden Sie das folgende unpack()-Format:

$byte_array = unpack('C*', $string);

Die Formatzeichenfolge „C*“ gibt dies an Wir möchten eine Folge von vorzeichenlosen Zeichen (in den Bereichen [0, 255]) entpacken, die die Bytewerte der Zeichenfolge darstellen.

Beispiel

Nehmen wir die Beispielzeichenfolge: „The Quick Fox sprang über den faulen braunen Hund. Mit dem obigen Ansatz können wir das entsprechende Byte-Array erhalten:

$string = "The quick fox jumped over the lazy brown dog";
$byte_array = unpack('C*', $string);

var_dump($byte_array);

Ausgabe:

array(44) {
  [1] => int(84)
  [2] => int(104)
  [3] => int(101)
  [4] => int(32)
  [5] => int(113)
  [6] => int(117)
  [7] => int(105)
  [8] => int(99)
  [9] => int(107)
  [10] => int(32)
  [11] => int(102)
  [12] => int(111)
  [13] => int(120)
  [14] => int(32)
  [15] => int(106)
  [16] => int(117)
  [17] => int(109)
  [18] => int(112)
  [19] => int(101)
  [20] => int(100)
  [21] => int(32)
  [22] => int(111)
  [23] => int(118)
  [24] => int(101)
  [25] => int(114)
  [26] => int(32)
  [27] => int(116)
  [28] => int(104)
  [29] => int(101)
  [30] => int(32)
  [31] => int(108)
  [32] => int(97)
  [33] => int(122)
  [34] => int(121)
  [35] => int(32)
  [36] => int(98)
  [37] => int(114)
  [38] => int(111)
  [39] => int(119)
  [40] => int(110)
  [41] => int(32)
  [42] => int(100)
  [43] => int(111)
  [44] => int(103)
}

Wie Sie sehen können, enthält das Ausgabe-Array die Bytewerte jedes Zeichens im Zeichenfolge, indiziert ab 1.

Das obige ist der detaillierte Inhalt vonWie kann ich mit „unpack()' einen PHP-String in ein Byte-Array konvertieren?. 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