Join Up!
96811 members and counting!

 
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links 
search for in the  
previousleakshow_sourcenext
Last updated: Tue, 29 Oct 2002
view the printer friendly version or the printer friendly version with notes or change language to Czech | Finnish | German

pack

(PHP 3, PHP 4 )

pack -- empaqueta datos en una cadena binaria

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.

User Contributed Notes
pack
add a note about notes
There are no user contributed notes for this page.
previousleakshow_sourcenext
Last updated: Tue, 29 Oct 2002
Copyright © 2001, 2002 The PHP Group
All rights reserved.
This mirror generously provided by: http://phpbuilder.com/
Last updated: Thu Oct 31 18:34:28 2002 EST