Heim > Backend-Entwicklung > PHP-Problem > Konvertieren Sie einen PHP-String in ein Byte-Array

Konvertieren Sie einen PHP-String in ein Byte-Array

王林
Freigeben: 2023-05-07 14:46:08
Original
966 Leute haben es durchsucht

In PHP ist das Konvertieren eines Strings in ein Byte-Array ein sehr nützlicher Vorgang. Byte-Arrays sind besonders wichtig, wenn mit Binärdaten gearbeitet wird. In diesem Artikel werfen wir einen genaueren Blick darauf, wie man einen PHP-String in ein Byte-Array umwandelt.

1. Was ist ein Byte-Array?

Byte-Array, ein aus Bytes bestehendes Array, ist ein Format zur Darstellung von Daten. In PHP wird jedes Zeichen durch ein oder mehrere Bytes dargestellt. Daher kann eine Zeichenfolge als Byte-Array betrachtet werden.

2. Wie konvertiere ich einen String in ein Byte-Array?

In PHP können wir einen String auf zwei Arten in ein Byte-Array konvertieren.

1. Verwenden Sie die Funktion str_split().

Die Funktion str_split() kann die Zeichenfolge entsprechend der angegebenen Länge in ein Array aufteilen, und jedes Element ist eine Zeichenfolge gleicher Länge.

Das Folgende ist ein Beispielcode, der die Funktion str_split() verwendet, um einen String in ein Byte-Array umzuwandeln:

$str = 'Hello world!';
$bytes = str_split($str);
Nach dem Login kopieren

Das $bytes-Array speichert hier den ASCII-Codewert, der jedem Zeichen im $str-String entspricht. Wenn wir die Elemente im $bytes-Array in das Hexadezimalformat konvertieren möchten, können wir die Funktion dechex() verwenden.

Das Folgende ist der Code zum Konvertieren der Elemente im $bytes-Array in das Hexadezimalformat:

foreach ($bytes as $byte) {
    $hex[] = dechex(ord($byte));
}
Nach dem Login kopieren

Im obigen Code verwenden wir die Funktion ord(), um jedes Zeichen in seinen entsprechenden ASCII-Codewert umzuwandeln und ihn in umzuwandeln Hexadezimalformat mit der Funktion dechex().

2. Verwenden Sie die Funktion unpack()

Die Funktion unpack() kann eine binäre Zeichenfolge in ein Array konvertieren, wobei jedes Element der Dezimalwert des entsprechenden Bytes in der Zeichenfolge ist.

Hier ist der Beispielcode zum Konvertieren eines Strings in ein Byte-Array mit der Funktion unpack():

$str = 'Hello world!';
$bytes = unpack('C*', $str);
Nach dem Login kopieren

Im obigen Code haben wir die Funktion unpack() und das Zeichen „C“ verwendet. Dieses Zeichen gibt an, dass jedes Byte als vorzeichenloses Zeichen behandelt wird. Darüber hinaus bedeutet „*“, dass alle Binärdaten gelesen werden.

3. Wie konvertiere ich ein Byte-Array in einen String?

Mit der Funktion implode() können wir ein Byte-Array in einen String konvertieren. Unten ist der Beispielcode zum Konvertieren des $bytes-Arrays in einen String mit der Funktion implode():

$str = implode('', array_map('chr', $bytes));
Nach dem Login kopieren

Im obigen Code haben wir die Funktionen array_map() und chr() verwendet. Die Funktion array_map() nimmt jedes Element (d. h. Bytewert) im Array $bytes als Parameter der Funktion chr() und wandelt jeden Bytewert in ASCII-Zeichen um. Verwenden Sie abschließend die Funktion implode(), um alle Zeichen zu einer Zeichenfolge zu verketten.

4. Wie teste ich die Leistung der Konvertierung von Zeichenfolgen in Byte-Arrays?

Das Konvertieren eines Strings in ein Byte-Array ist ein häufiger Vorgang und wir müssen seine Leistung testen, um seine Effizienz sicherzustellen.

Das Folgende ist ein einfacher Test, mit dem die Leistung eines String-zu-Byte-Arrays getestet werden kann:

$testData = str_repeat('a', 1024 * 1024);
$times = 100;

$start = microtime(true);

for ($i = 0; $i < $times; $i++) {
    $bytes = unpack('C*', $testData);
}

$end = microtime(true);

echo 'Time per loop: ' . (1000 * ($end - $start) / $times) . 'ms';
Nach dem Login kopieren

Im obigen Code verwenden wir die Funktion str_repeat(), um einen 1 MB großen String zu generieren und ihn in ein Byte umzuwandeln Array. Anschließend durchlaufen wir diesen Vorgang 100 Mal und geben die für jede Schleife benötigte Zeit aus.

Den Testergebnissen zufolge beträgt die durchschnittliche Laufzeit dieses Vorgangs auf meinem Computer (MacBook Pro, 2,7 GHz Intel Core i5, 8 GB RAM) 7–8 Millisekunden.

Das obige ist der detaillierte Inhalt vonKonvertieren Sie einen PHP-String in ein Byte-Array. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage