Descripción
string
pack
( string format [, mixed args])
Empaqueta
los
argumentos
dados
en
una
cadena
binaria
siguiendo
el
formato
format
.
Devuelve
la
cadena
binaria
que
contiene
los
datos
.
El
concepto
de
esta
función
fue
tomado
de
Perl
y
todos
los
códigos
de
formateo
realizan
la
misma
función
.
La
cadena
de
formato
consiste
en
códigos
de
formato
seguidos
por
un
argumento
opcional
de
repetición
.
El
argumento
de
repetición
puede
ser
un
valor
entero
o
*
para
repetir
hasta
el
fin
de
la
entrada
de
datos
.
Para
a
,
A
,
h
,
H
la
cuenta
de
repetición
representa
cuántos
caracteres
se
toman
de
un
argumento
de
datos
,
para
@
es
la
posición
absoluta
donde
poner
los
datos
siguientes
,
para
todo
lo
demás
la
cuenta
de
repetición
especifica
cuántos
argumentos
de
datos
se
toman
y
empaquetan
en
la
cadena
binaria
resultante
.
Actualmente
están
implementados
:
-
a
cadena
rellena
de
NUL
-
A
cadena
rellena
de
ESPACIOS
-
h
cadena
Hex
,
primero
el
medio
byte
inferior
-
H
cadena
Hex
,
primero
el
medio
byte
superior
-
c
signed
(
con
signo
)
char
-
C
unsigned
(
sin
signo
)
char
-
s
signed
short
(
siempre
16
bits
,
distribución
de
bytes
de
la
máquina
)
-
S
unsigned
short
(
siempre
16
bits
,
distribución
de
bytes
de
la
máquina
)
-
n
unsigned
short
(
siempre
16
bits
,
distribución
de
bytes
gran
endian
)
-
v
unsigned
short
(
siempre
16
bits
,
distribución
de
bytes
pequeño
endian
)
-
i
signed
integer
(
distribución
de
bytes
y
tamaños
dependientes
de
la
máquina
)
-
I
unsigned
integer
(
distribución
de
bytes
y
tamaños
dependientes
de
la
máquina
)
-
l
signed
long
(
siempre
32
bits
,
distribución
de
bytes
de
la
máquina
)
-
L
unsigned
long
(
siempre
32
bits
,
distribución
de
bytes
de
la
máquina
)
-
N
unsigned
long
(
siempre
32
bits
,
distribución
de
bytes
gran
endian
)
-
V
unsigned
long
(
siempre
32
bits
,
distribución
de
bytes
pequeño
endian
)
-
f
float
(
representación
y
tamaño
dependientes
de
la
máquina
)
-
d
double
(
representación
y
tamaño
dependientes
de
la
máquina
)
-
x
byte
NUL
-
X
Un
byte
hacia
atrás
-
@
relleno
con
NUL
en
la
posición
absoluta
Ejemplo
1
.
cadena
de
formato
para
pack
$binarydata
=
pack(
"nvc*"
,
0x1234
,
0x5678
,
65
,
66)
;
|
La
cadena
binaria
resultante
tendrá
6
bytes
de
longitud
y
contendrá
la
secuencia
de
bytes
0x12
,
0x34
,
0x78
,
0x56
,
0x41
,
0x42
.
|
Adviértase
que
la
distinción
entre
valores
signed
(
con
signo
)
y
unsigned
(sin
signo
)
sólo
afecta
a
la
función
unpack(
)
,
ya
que
la
función
pack(
)
da
el
mismo
resultado
para
códigos
de
formato
con
signo
y
sin
signo
.
Nótese
también
que
internamente
PHP
almacena
valores
enteros
como
valores
con
signo
de
un
tamaño
dependiente
de
la
máquina
.
Si
le
da
un
valor
entero
sin
signo
demasiado
grande
para
ser
almacenado
,
será
convertido
a
un
double
(
doble
)
,
lo
que
a
menudo
produce
resultados
no
deseados
.