PHP pack()Funciones
Ejemplos
Empaquetar datos en una cadena binaria:
<?php
echo pack("C3",80,72,80);
?>
echo pack("C3",80,72,80);
?>
Ejecutar ejemplo »
Definición y uso
La función pack() empaqueta datos en una cadena binaria.
Esto es muy útil en la transmisión de red, el procesamiento de archivos y el almacenamiento de datos, especialmente cuando se necesita un control preciso del formato de datos y del orden de bytes (endianidad).
Sintaxis
string pack(string $format, mixed $arg1 [, mixed $arg2, ...])
$format: una cadena que especifica cómo empaquetar losarg1,arg2parámetros, ... dados. Cada carácter representa un tipo de datos y un tamaño.$arg1,$arg2, ...: los datos a empaquetar. Pueden ser enteros, números de punto flotante, cadenas, etc.
La función pack() devuelve la cadena binaria empaquetada, o false si se produce un error.
| Parámetros | Descripción |
|---|---|
| format | Obligatorio. Especifica el formato utilizado al empaquetar los datos. Valores posibles: Enteros:
Números de punto flotante:
Cadenas y otros tipos:
|
| args+ | Opcional. Especifica uno o más parámetros a empaquetar. |
Detalles técnicos
| Valor de retorno: | Devuelve la cadena binaria que contiene los datos. |
|---|---|
| Versión de PHP: | 4+ |
| Registro de cambios: | En PHP 5.5 se añadió el código "Z", que tiene la misma funcionalidad que "a" para compatibilidad con Perl. |
Más ejemplos
A continuación se muestran algunos ejemplos de uso de la función pack().
Empaquetar un entero corto sin signo y una cadena:
Ejemplo
$data = pack('S', 65535); // Empaquetar entero corto sin signo 65535
echo bin2hex($data); // Salida: ffff
echo bin2hex($data); // Salida: ffff
Empaquetar un entero largo con signo y una cadena:
Ejemplo
$data = pack('l', -2147483648); // Empaquetar entero largo con signo -2147483648
echo bin2hex($data); // Salida: 0000000080000000
echo bin2hex($data); // Salida: 0000000080000000
Empaquetar un número de punto flotante y una cadena:
Ejemplo
$data = pack('f', 3.14); // Empaquetar número de punto flotante 3.14
echo bin2hex($data); // Salida: 4048f5c3
echo bin2hex($data); // Salida: 4048f5c3
Precauciones
pack()Esta función es una potente herramienta para convertir datos a formato binario, pero debes asegurarte de entender el significado y el uso de cada carácter del formato.- Problema de endianidad (orden de bytes): en diferentes sistemas, la representación de enteros y números de punto flotante puede diferir; se puede utilizar
pack()yunpack()la función para garantizar la transmisión y el análisis correctos de los datos entre diferentes sistemas. - Se puede utilizar
bin2hex()la función para convertir datos binarios en una cadena hexadecimal para su salida y depuración.
Manual de referencia PHP Misc Otras extensiones