PHP pack()Funktionen

PHP Misc 参考手册PHP-Referenzhandbuch für Verschiedenes

Beispiele

Daten in einen Binärstring packen:

<?php
echo pack("C3",80,72,80);
?>

Beispiel ausführen »

Definition und Verwendung

Die Funktion pack() packt Daten in einen Binärstring.

Dies ist sehr nützlich bei der Netzwerkübertragung, Dateiverarbeitung und Datenspeicherung, insbesondere wenn eine präzise Kontrolle über Datenformat und Byte-Reihenfolge erforderlich ist.


Syntax

string pack(string $format, mixed $arg1 [, mixed $arg2, ...])
  • $format: Eine Zeichenfolge, die angibt, wie die angegebenenarg1, arg2, ... Argumente gepackt werden. Jedes Zeichen stellt einen Datentyp und eine Größe dar.
  • $arg1, $arg2, ...: Die zu packenden Daten. Dies können Ganzzahlen, Gleitkommazahlen oder Zeichenfolgen usw. sein.

Die Funktion pack() gibt den gepackten Binärstring zurück oder false, wenn ein Fehler auftritt.


Parameters Beschreibung
format Erforderlich. Gibt das Format an, das beim Packen von Daten verwendet wird.

Mögliche Werte:

Ganzzahlen:

  • c: signed char (1 byte).
  • C: unsigned char (1 Byte).
  • s: vorzeichenbehaftete kurze Ganzzahl (2 Bytes, Host-Byte-Reihenfolge).
  • S: vorzeichenlose kurze Ganzzahl (2 Bytes, Host-Byte-Reihenfolge).
  • l: vorzeichenbehaftete lange Ganzzahl (4 Bytes, Host-Byte-Reihenfolge).
  • L: vorzeichenlose lange Ganzzahl (4 Bytes, Host-Byte-Reihenfolge).
  • q: vorzeichenbehaftete Long-Long-Ganzzahl (8 Bytes, Host-Byte-Reihenfolge).
  • Q: vorzeichenlose Long-Long-Ganzzahl (8 Bytes, Host-Byte-Reihenfolge).

Gleitkommazahlen:

  • f: Gleitkommazahl mit einfacher Genauigkeit (4 Bytes, Host-Byte-Reihenfolge).
  • d: Gleitkommazahl mit doppelter Genauigkeit (8 Bytes, Host-Byte-Reihenfolge).

Zeichenketten und andere Typen:

  • x: NUL-Byte (Füllbyte, kein Argument).
  • a: NUL-terminierte Zeichenkette (nimmt das Argument als Zeichenkette).
  • A: mit Leerzeichen aufgefüllte Zeichenkette (nimmt das Argument als Zeichenkette).
  • @: Mit NUL-Bytes auf eine angegebene Länge aufgefüllt.
args+ Optional. Gibt ein oder mehrere zu packende Argumente an.

Technische Details

Rückgabewert: Gibt einen Binärstring zurück, der die Daten enthält.
PHP-Version: 4+
Änderungsprotokoll: Der Code "Z" wurde in PHP 5.5 hinzugefügt und hat dieselbe Funktionalität wie "a", das für die Perl-Kompatibilität verwendet wird.


Weitere Beispiele

Nachfolgend einige Beispiele zur Verwendung der Funktion pack().

Packen Sie eine vorzeichenlose kurze Ganzzahl und eine Zeichenkette:

Beispiel

$data = pack('S', 65535); // Vorzeichenlose kurze Ganzzahl 65535 packen
echo bin2hex($data); // Ausgabe: ffff

Packen Sie eine vorzeichenbehaftete lange Ganzzahl und eine Zeichenkette:

Beispiel

$data = pack('l', -2147483648); // Vorzeichenbehaftete lange Ganzzahl -2147483648 packen
echo bin2hex($data); // Ausgabe: 0000000080000000

Eine Gleitkommazahl und eine Zeichenkette packen:

Beispiel

$data = pack('f', 3.14); // Gleitkommazahl 3.14 packen
echo bin2hex($data); // Ausgabe: 4048f5c3

Hinweise

  • pack()Die Funktion ist ein leistungsstarkes Werkzeug, um Daten in ein Binärformat umzuwandeln, aber Sie müssen sicherstellen, dass Sie die Bedeutung und Verwendung jedes Zeichens im erforderlichen Format verstehen.
  • Endianness-Problem (Byte-Reihenfolge): Auf verschiedenen Systemen können Ganzzahlen und Gleitkommazahlen unterschiedlich dargestellt werden. Sie könnenpack()undunpack()die Funktion verwenden, um die korrekte Übertragung und das korrekte Parsen von Daten zwischen verschiedenen Systemen sicherzustellen.
  • Sie könnenbin2hex()die Funktion, um Binärdaten in eine hexadezimale Zeichenkette zur Ausgabe und zum Debuggen umzuwandeln.
PHP Misc 参考手册PHP-Handbuch für sonstige Referenzen Andere Erweiterungen