Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich einen PHP-String in ein Byte-Array konvertieren?

Wie kann ich einen PHP-String in ein Byte-Array konvertieren?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-27 18:39:11207Durchsuche

How Can I Convert a PHP String to a Byte Array?

Konvertieren eines Strings in ein Byte-Array in PHP

In PHP gibt es verschiedene Möglichkeiten, einen String, der Zeichen und Zahlen enthält, in einen umzuwandeln Byte-Array. Ähnlich wie bei der getBytes()-Methode von Java gibt es hier einige Ansätze, um diese Konvertierung zu erreichen:

Verwenden der ord()-Funktion

Durchlaufen Sie jedes Zeichen in der Zeichenfolge mit strlen(). Verwenden Sie für jedes Zeichen die Funktion ord(), um seinen ganzzahligen ASCII-Wert zu erhalten. Speichern Sie diese Werte in einem Array oder Byte-Array.

for ($i = 0; $i < strlen($msg); $i++) {
    $data[] = ord($msg[$i]); // Store in an array
    // or
    $byte_array .= ord($msg[$i]); // Concatenate in a byte array
}

Verwenden der unpack()-Funktion

PHPs unpack()-Funktion bietet eine übersichtliche Methode zum Konvertieren einer Zeichenfolge in ein strukturiertes Array ganzzahliger Werte umwandeln. Es ermöglicht Ihnen, die Zeichen in der Zeichenfolge als einzelne Bytes zu extrahieren und neu zu interpretieren.

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

Beachten Sie, dass die Werte im Array $byte_array Ganzzahlen sind, die die ASCII-Codes für jedes Zeichen im Bereich von 0 bis 255 darstellen.

Angesichts des ursprünglich bereitgestellten Codeausschnitts scheint es, dass Sie versucht haben, die Zeichen in Hexadezimalwerte statt in Ganzzahlwerte umzuwandeln. Um dies zu erreichen, können Sie die Funktion bin2hex() verwenden, nachdem Sie den ASCII-Code des Zeichens erhalten haben:

for ($i = 0; $i < strlen($msg); $i++) {
    $data .= bin2hex(chr(ord($msg[$i]))); // Convert to hex and concatenate
}

Zusätzliche Hinweise

  • Die Funktion unpack() Erstellt ein 1-basiertes Index-Array, wobei auf das erste Element mit $byte_array[1] zugegriffen wird.
  • Das Ausgabe-Byte-Array kann in C# problemlos in ein Byte[] konvertiert werden, da die Werte im Bereich von 0 bis 255 liegen.
  • Stellen Sie sicher, dass der Zielserver in Java ein Byte-Array und keine Zeichenfolge erwartet.

Das obige ist der detaillierte Inhalt vonWie kann ich 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