(PECL quickhash >= Unknown)
QuickHashIntHash::loadFromFile — Cette méthode d'usine crée un hachage à partir d'un fichier
Cette méthode d'usine crée un nouveau hachage à partir d'un fichier de définition sur disque. Le
format de fichier consiste en une signature 'QH\0x11\0'
, le nombre d'éléments en tant
qu'entier signé 32 bits en Endianness système, suivi d'entiers 32 bits signés empaquetés ensemble
dans l'Endianness que le système sur lequel le code s'exécute utilise. Pour chaque élément de hachage, il y a deux entiers 32 bits signés
stockés. Le premier de chaque élément est la clé, et le second est la valeur
appartenant à la clé. Un exemple pourrait être :
Exemple #1 Format de fichier QuickHash IntHash
00000000 51 48 11 00 02 00 00 00 01 00 00 00 01 00 00 00 |QH..............| 00000010 03 00 00 00 09 00 00 00 |........| 00000018
Exemple #2 Format de fichier QuickHash IntHash
header signature ('QH'; key type: 1; value type: 1; filler: \0x00) 00000000 51 48 11 00 number of elements: 00000004 02 00 00 00 data string: 00000000 01 00 00 00 01 00 00 00 03 00 00 00 09 00 00 00 key/value 1 (key = 1, value = 1) 01 00 00 00 01 00 00 00 key/value 2 (key = 3, value = 9) 03 00 00 00 09 00 00 00
filename
Le nom du fichier à partir duquel lire le hachage.
options
Les mêmes options que le constructeur de la classe; à l'exception de l'option
size qui est ignorée. Elle est automatiquement calculée pour être la même que le
nombre d'entrées dans le hachage, arrondie à la puissance de deux la plus proche
avec une limite maximale de 4194304
.
Renvoie un nouveau QuickHashIntHash.
Exemple #3 Exemple de QuickHashIntHash::loadFromFile()
<?php
$file = dirname( __FILE__ ) . "/simple.hash";
$hash = QuickHashIntHash::loadFromFile(
$file,
QuickHashIntHash::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
printf( "Key %3d (%2x) is %s\n",
$key, $key,
$hash->exists( $key ) ? 'set' : 'unset'
);
}
?>
Résultat de l'exemple ci-dessus est similaire à :
Key 0 ( 0) is unset Key 1 ( 1) is set Key 2 ( 2) is set Key 3 ( 3) is set Key 4 ( 4) is unset Key 5 ( 5) is set Key 6 ( 6) is unset Key 7 ( 7) is set Key 8 ( 8) is unset Key 9 ( 9) is unset Key 10 ( a) is unset Key 11 ( b) is set Key 12 ( c) is unset Key 13 ( d) is set Key 14 ( e) is unset Key 15 ( f) is unset