(PECL quickhash >= Unknown)
QuickHashIntHash::loadFromFile — Créer un hash depuis un fichier
$filename
[, int $options
] )Cette méthode de fabrique crée un nouveau hash depuis un fichier. Le format du fichier contient une signature,'QH\0x11\0' le nombre d'éléments sur un entier signé 32bits suivi d'entiers signés 32bits dans le boutisme de la machine courante. Chaque élément correspond à deux entiers signés, le premier est la clé, le second la valeur. Voici un exemple :
Exemple #1 Format du 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 du 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 fichier depuis lequel lire le hash.
options
Les mêmes options que le constructeur de la classe accepte, sauf l'option de taille, qui sera ignorée. La taille est calculée automatiquement pour correspondre au nombre d'entrées dans le hash, arrondie à la puissance de deux supérieure (limite maximale de 4194304).
Retourne un nouveau QuickHashIntHash.
Exemple #3 Exemple 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'
);
}
?>
L'exemple ci-dessus va afficher quelque chose de 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