pack

pack -- Packt Daten in einen Binär-String

Beschreibung:

string pack ( string format [, mixed args])

Diese Funktion packt ein oder mehrere Argumente - unter Beachtung der Argument-Formate - in einen Binär-String . In dem zurück gegebenen Binär-String stehen anschließend die Daten .

Die Idee entstammt Perl . Alle Formatierungs-Anweisungen funktionieren genau wie dort . In PHP fehlen aber einige Format-Codes von Perl ( z.B . "u" ) . Der Format-String besteht aus Format-Codes , gefolgt von einem optionalen Wiederholungs-Argument . Dieses Argument kann ein Integer-Wert oder ein " * " (für Wiederholung bis ans Ende der Daten ) sein . Bei " a" , "A" , "h " und dem "H " Format-Code gibt das Wiederholungs-Argument an , wie viele gleiche Zeichen folgen . Im Zusammenhang mit " @ " gibt das Wiederholungs-Argument die absolute Position an , ab der das nächste Zeichen steht . Bei allen anderen steht der Wiederholungs-Zähler für die Anzahl der benutzten Daten-Argumente , die in den Binär-String gepackt werden sollen . Z . Zt . sind folgende Codes implementiert :

Beispiel 1 . Mit Pack formatierter String :




Der sich daraus ergebende Binär-String ist 6 Bytes lang und enthält : 0x12 , 0x34 , 0x78 , 0x56 , 0x41 , 0x42 .



Bedenken sie , dass der Unterschied zwischen vorzeichen-losen und vorzeichen-behafteten Werten nur Einfluss auf die Funktion unpack( ) hat , wogegen dies bei der Funktion pack( ) egal ist .

Beachten sie auch , dass PHP intern Ganzzahl-Werte als vorzeichen-behaftete Werte speichert , deren Umfang vom Maschinen-Typ abhängig ist . Geben sie PHP einen vorzeichen-losen Ganzzahl-Wert , der zu groß ist für diese Art der Speicherung , wird er ins Double-Format umgesetzt , was oft zu unerwünschten Resultaten führt .