inwebo
Messages postés381Date d'inscriptionlundi 12 novembre 2007StatutMembreDernière intervention23 octobre 2014
-
12 oct. 2014 à 14:42
inwebo
Messages postés381Date d'inscriptionlundi 12 novembre 2007StatutMembreDernière intervention23 octobre 2014
-
17 oct. 2014 à 11:46
Bonjour,
je travail actuellement sur une classe de manipulation de fichier ico, pour se faire je parse ces fichiers grâce à la documentation glanée sur le web. ICO, File format, Bitmap info header.
Or pour ce header, je me retrouve à parser une chaine de 40 bytes. J'arrive à extraire le membre size qui est un DWORD. Par contre ma question est comment peut on en PHP parser un LONG qui est un Signed 64-bit integer qui n'est pas un type reconnus par PHP il me semble ?
- Je confirme que la chaine d'entrée est valide et dans le format attendus.
- All values in ICO/CUR files are represented in little-endian byte order.
Caractères de formatage pour pack() Code Description
a NUL - Une chaîne complétée avec NULL
A SPACE - Une chaîne complétée avec un espace
h Chaîne hexadécimale h, bit de poids faible en premier
H 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 non signé (toujours 16 bits, ordre des bits big endian)
v entier court 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 32 bits, ordre des bits big endian)
V entier long non signé (toujours 32 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 caractère NUL
X Recule d'un caractère
Z Chaîne complétée par la valeur NULL (nouveau en PHP 5.5)
@ Remplit avec des NUL jusqu'à la position absolue
Pour ce qui est de :
un LONG qui est un Signed 64-bit integer qui n'est pas un type reconnus par PHP il me semble ?
Il me semble que cela dépend de ta config (matériel/OS et version de PHP installée..)
Tu peux vérifier avec :
14 oct. 2014 à 10:19