Description
string
pack
( string format [, mixed args])
pack(
)
compacte
les
arguments
dans
une
chaîne
binaire
,
suivant
le
format
format
.
pack(
)
retourne
la
chaîne
binaire
.
L'
idée
vient
du
Perl
et
tout
le
formatage
fonctionne
de
la
même
façon
qu'en
Perl
,
mais
quelques
formats
manquent
encore
(comme
,
"u
"
)
.
La
chaîne
de
format
est
composée
d
'
une
série
de
codes
de
formats
,
suivis
par
un
quantificateur
optionnel
.
Le
quantificateur
peut
être
un
entier
,
ou
*
pour
la
répétition
indéfinie
.
Pour
les
formats
a
,
A
,
h
et
H
,
le
quantificateur
spécifie
combien
de
caractères
d'
un
argument
sont
pris
;
pour
@
,
c'est
la
position
absolue
où
placer
les
données
,
et
pour
le
reste
,
c
'est
le
nombre
de
répétitions
.
Actuellement
,
les
formats
suivants
sont
implémentés
:
-
Une
chaîne
complétée
avec
NULL
-
Une
chaîne
complétée
avec
espace
(
SPACE
)
-
Chaîne
hexadécimale
h
,
bit
de
poids
faible
en
premier
.
-
Chaîne
hexadécimale
H
,
bit
de
poids
fort
en
premier
.
-
c
caractère
signé
-
C
caractère
non
signé
-
s
entier
court
signé
(
toujours
sur
16
bits
,
ordre
des
bits
dépendant
de
la
machine
)
.
-
S
entier
court
non
signé
(
toujours
16
bits
,
ordre
des
bits
dépendant
de
la
machine
)
.
-
n
entier
court
signé
(
toujours
16
bits
,
ordre
des
bits
big
endian
)
-
v
entier
cours
non
signé
(
toujours
16
bits
,
ordre
des
bits
little
endian
)
-
i
entier
signé
(
taille
et
ordre
des
bits
dépendants
de
la
machine
)
-
I
entier
non
signé
(
taille
et
ordre
des
bits
dépendants
de
la
machine
)
-
l
entier
long
signé
(
toujours
32
bits
,
ordre
des
bits
dépendant
de
la
machine
)
-
L
entier
long
non
signé
(
toujours
32
bits
,
ordre
des
bits
dépendant
de
la
machine
)
-
N
entier
long
non
signé
(
toujours
16
bits
,
ordre
des
bits
big
endian
)
-
V
entier
long
non
signé
(
toujours
16
bits
,
ordre
des
bits
little
endian
)
-
f
nombre
à
virgule
flottante
(
taille
et
représentation
dépendantes
de
la
machine
)
-
d
nombre
à
virgule
flottante
double
(
taille
et
représentation
dépendantes
de
la
machine
)
-
x
bit
NULL
-
X
recule
d
'
un
octet
-
@
rempli
avec
NULL
,
jusqu
'
à
une
position
absolue
Exemple
1
.
Compactage
d
'
une
chaîne
?php
$binarydata
=
pack
(
"nvc*"
,
0x1234
,
0x5678
,
65
,
66)
;
?
|
La
chaîne
binaire
résultante
aura
6
octets
de
long
,
et
contiendra
la
séquence
0x12
,
0x34
,
0x78
,
0x56
,
0x41
,
0x42
.
|
Notez
que
la
distinction
entre
signé
et
non
signé
n'
affecte
que
la
fonction
unpack(
)
,
tandis
que
la
fonction
pack(
)
fournira
le
même
résultat
pour
les
deux
formats
.
De
plus
,
notez
que
PHP
enregistre
de
manière
interne
et
intégrale
les
valeurs
:
cette
représentation
dépend
de
la
machine
.
Si
vous
essayez
d'
enregistrer
une
valeur
trop
grande
,
elle
risque
d
'être
convertie
et
de
donner
lieu
à
des
effets
de
bords
vicieux
.