A função bin2hex() converte uma string de caracteres ASCII em valores hexadecimais. A string pode ser convertida de volta usando a função pack().
bint2hex()
bin2hex() converte uma string ASCII em valores hexadecimais.
<?php echo bin2hex('maria'); ?>
Resultado:
6d61726961
pack()
A função pack() empacota os dados em uma string binária.
Voltando o valor original
<?php $nome = bin2hex('maria'); echo pack("H*",$nome); ?>
Resultado:
maria
Em pack(“H*”,$nome) visto acima o H* é o formato e é parâmetro obrigatório. Abaixo são os formatos que podemos usar:
Possible values:
- a – NUL-padded string
- A – SPACE-padded string
- h – Hex string, low nibble first
- H – Hex string, high nibble first
- c – signed char
- C – unsigned char
- s – signed short (always 16 bit, machine byte order)
- S – unsigned short (always 16 bit, machine byte order)
- n – unsigned short (always 16 bit, big endian byte order)
- v – unsigned short (always 16 bit, little endian byte order)
- i – signed integer (machine dependent size and byte order)
- I – unsigned integer (machine dependent size and byte order)
- l – signed long (always 32 bit, machine byte order)
- L – unsigned long (always 32 bit, machine byte order)
- N – unsigned long (always 32 bit, big endian byte order)
- V – unsigned long (always 32 bit, little endian byte order)
- q – signed long long (always 64 bit, machine byte order)
- Q – unsigned long long (always 64 bit, machine byte order)
- J – unsigned long long (always 64 bit, big endian byte order)
- P – unsigned long long (always 64 bit, little endian byte order)
- f – float (machine dependent size and representation)
- g – float (machine dependent size, little endian byte order)
- G – float (machine dependent size, big endian byte order)
- d – double (machine dependent size and representation)
- e – double (machine dependent size, little endian byte order)
- E – double (machine dependent size, big endian byte order)
- x – NUL byte
- X – Back up one byte
- Z – NUL-padded string
- @ – NUL-fill to absolute position