Heim > Backend-Entwicklung > PHP-Problem > PHP konvertiert String in Byte-Array

PHP konvertiert String in Byte-Array

WBOY
Freigeben: 2023-05-11 09:31:06
Original
657 Leute haben es durchsucht

Bei der PHP-Programmierung müssen wir manchmal einen String in ein Byte-Array umwandeln, um die Binärdatenverarbeitung bequemer zu gestalten. In diesem Artikel erklären wir, wie man mit PHP einen String in ein Byte-Array umwandelt.

  1. Verwenden Sie die Funktion str_split()

Die Funktion str_split() von PHP kann einen String in ein Array aufteilen, wobei jedes Element ein einzelnes Zeichen (ASCII-Code) ist. Wenn Sie diese Funktion verwenden, müssen Sie auf Probleme mit der Zeichenkodierung achten. Wenn die Zeichenfolge beispielsweise UTF-8-codiert ist, benötigt jedes chinesische Zeichen normalerweise 3 Byte oder mehr Speicherplatz.

Hier ist ein Beispielcode:

// 定义一个字符串
$str = 'hello world';

// 将字符串转换为字节数组
$bytes = array_map('ord', str_split($str));
Nach dem Login kopieren

Im obigen Code definieren wir zunächst eine Zeichenfolge („Hallo Welt“) und teilen sie dann mit der Funktion str_split() in ein Array auf. Als Nächstes verwenden wir die in PHP integrierte Funktion ord(), um jedes Zeichen in ASCII-Code umzuwandeln und das konvertierte Array in der Variablen $bytes zu speichern.

  1. Verwenden Sie die Funktion unpack()

Die Funktion unpack() von PHP kann Binärdaten in ein Array oder assoziatives Array in einem angegebenen Format entpacken. Diese Funktion ist relativ leistungsstark und kann das Entpacken in mehreren Formaten unterstützen, z. B. Strukturen in C-Sprache usw.

Das Folgende ist ein Beispielcode:

// 定义一个字符串
$str = 'hello world';

// 将字符串转换为字节数组
$bytes = unpack('C*', $str);
Nach dem Login kopieren

Im obigen Code definieren wir zunächst eine Zeichenfolge („Hallo Welt“) und entpacken sie dann mit der Funktion unpack() in den C-Sprachzeichentyp („C“). ). Schließlich wird das konvertierte Byte-Array in der Variablen $bytes gespeichert.

  1. Verwenden Sie die Funktion mb_str_split()

Wenn die Zeichenfolge eine Multibyte-Kodierung aufweist (z. B. UTF-8), kann die obige Methode zu falschen Ergebnissen führen, da Multibyte-Zeichen entsprechend ihrem Kodierungsformat aufgeteilt werden müssen.

Um dieses Problem zu lösen, können Sie die Funktion mb_str_split() verwenden, um Multibyte-Strings zu verarbeiten. Diese Funktion ähnelt der Funktion str_split(), unterstützt jedoch Multibyte-Zeichen.

Hier ist ein Beispielcode:

// 定义一个多字节字符串
$str = '今天天气真好';

// 将字符串转换为字节数组
$bytes = array_map('ord', mb_str_split($str));
Nach dem Login kopieren

Im obigen Code definieren wir zunächst eine Multibyte-Zeichenfolge („Heute ist ein schöner Tag“), teilen sie dann mit der Funktion mb_str_split() in mehrere Zeichen auf und schließlich Verwendung: Die Funktion ord() konvertiert jedes Zeichen in ASCII-Code und speichert das konvertierte Array in der Variablen $bytes.

Zusammenfassung

Wenn Sie in der PHP-Programmierung einen String in ein Byte-Array konvertieren müssen, können Sie Methoden wie die Funktionen str_split(), unpack() oder mb_str_split() verwenden. Unter anderem erfordert die Auswahl der geeigneten Methode die Berücksichtigung vieler Faktoren, wie z. B. des Codierungsformats der Zeichenfolge und des Formats der Binärdaten. In der tatsächlichen Entwicklung ist es notwendig, eine geeignete Methode basierend auf den spezifischen Anforderungen auszuwählen.

Das obige ist der detaillierte Inhalt vonPHP konvertiert String in 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