QuickHashIntStringHash: : loadFromFile
(PECL quickhash >= Unknown)
QuickHashIntStringHash::loadFromFile — Crée une table de hachage depuis un fichier
Description
$filename
[, int $size
= 0
[, int $options
= 0
]] ) : QuickHashIntStringHashCette méthode factorielle crée une nouvelle table de hachage depuis un fichier de définition se trouvant sur le disque. Le format consiste en une signature 'QH\0x12\0', le nombre d'éléments sous la forme d'un entier signé sur 32 bits en système Endianness, un entier non-signé sur 32 bits contenant le nombre d'éléments de données suivants les caractères. Cette élément de données contient toutes les chaînes. Après l'ent-tête et les chaînes, les éléments suivent, sous la forme d'une paire de 2 entiers non-signés sur 32 bits, où le premier est la clé, et le second, l'index de l'élément de données. Voici un exemple :
Exemple #1 Format de fichier QuickHash IntString
00000000 51 48 12 00 02 00 00 00 09 00 00 00 4f 4e 45 00 |QH..........ONE.| 00000010 4e 49 4e 45 00 01 00 00 00 00 00 00 00 03 00 00 |NINE............| 00000020 00 04 00 00 00 |.....| 00000025
Exemple #2 Format de fichier QuickHash IntString
header signature ('QH'; key type: 1; value type: 2; filler: \0x00) 00000000 51 48 12 00 number of elements: 00000004 02 00 00 00 length of string values (9 characters): 00000008 09 00 00 00 string values: 0000000C 4f 4e 45 00 4e 49 4e 45 00 data string: 00000015 01 00 00 00 00 00 00 00 03 00 00 00 04 00 00 00 key/value 1 (key = 1, string index = 0 ("ONE")): 01 00 00 00 00 00 00 00 key/value 2 (key = 3, string index = 4 ("NINE")): 03 00 00 00 04 00 00 00
Liste de paramètres
-
filename
-
Le nom du fichier depuis lequel la table de hachage sera lue.
-
size
-
La quantité de listes à créer. Le nombre passé sera automatiquement arrondi à la prochaine puissance de 2. Il sera également automatiquement limité à l'intervalle 4 - 4194304.
-
options
-
Les mêmes options que le constructeur de la classe ; sauf l'option taille qui sera ignorée. Elle sera automatiquement calculée pour correspondre au nombre d'entrées dans la table de hachage, arrondi à la puissance de 2 le plus proche avec une limite maximale de 4194304.
Exemples
Exemple #3 Exemple avec QuickHashIntStringHash::loadFromFile()
<?php
$file = dirname( __FILE__ ) . "/simple.string.hash";
$hash = QuickHashIntStringHash::loadFromFile(
$file,
QuickHashIntStringHash::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
Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-quickhashintstringhash.loadfromfile.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.