QuickHashIntStringHash::loadFromFile

(PECL quickhash >= Unknown)

QuickHashIntStringHash::loadFromFileEste método de fabricación crea un hash desde un fichero

Descripción

public static QuickHashIntStringHash::loadFromFile ( string $filename [, int $size = 0 [, int $options = 0 ]] ) : QuickHashIntStringHash

Este método de fabricación crea un nuevo hash desde un fichero de definición del disco. El formato del fichero consiste en una signatura 'QH\0x12\0', el número de elementos como un número entero de 32 bits con signo en el Endianness del sistema, un número entero de 32 sin signo que contiene el número de datos del elemento a seguir en caracteres. Estos datos del elemento contienen todos los strings. Después de la cabecera y los strings, los elementos siguen en parejas de dos enteros de 32 bits sin signo donde el primero es la clave, y el segundo el índice del string de datos del elemento. Un ejemplo podría ser:

Ejemplo #1 Formato de fichero de IntString de QuickHash

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

Ejemplo #2 Formato de fichero de IntString de QuickHash

signatura de la cabecera ('QH'; tipo de clave: 2; tipo de valor: 1; relleno: \0x00)
00000000  51 48 12 00

número de elementos:
00000004  02 00 00 00

longitud de los valores de string (9 caracteres):
00000008  09 00 00 00

valores de string:
0000000C  4f 4e 45 00 4e 49 4e 45  00

string de datos:
00000015  01 00 00 00 00 00 00 00  03 00 00 00 04 00 00 00

clave/valor 1 (clave = 1, índice del string = 0 ("ONE")):
01 00 00 00  00 00 00 00

clave/valor 2 (clave = 3, índice del string = 4 ("NINE")):
03 00 00 00  04 00 00 00

Parámetros

filename

El nombre de fichero del fichero desde donde leer el hash.

size

La cantidad de de listas de recipientes a configurar. El número proporcionado será automáticamente redondeado hacia arriba a la potencia de dos más cercana. Tambíen será automáticamente limitado de 4 a 4194304.

options

Las mismas opciones que toma el constructor de la clase; excepto que se ignora la opción 'size'. Ésta se calcula automáticamente para que sea el mismo que el número de entradas del hash, redondeado hacia arriba a la potencia de dos más próxima con un límite máximo de 4194304.

Valores devueltos

Devuelve un nuevo objeto QuickHashIntStringHash.

Ejemplos

Ejemplo #3 Ejemplo de QuickHashIntStringHash::loadFromFile()

<?php
$fichero 
dirname__FILE__ ) . "/simple.string.hash";
$hash QuickHashIntStringHash::loadFromFile(
    
$fichero,
    
QuickHashIntStringHash::DO_NOT_USE_ZEND_ALLOC
);
foreach( 
range00x0f ) as $clave )
{
    
printf"La clave %3d (%2x) %s\n",
        
$clave$clave
        
$hash->exists$clave ) ? 'está establecida' 'no está establecida'
    
);
}
?>

El resultado del ejemplo sería algo similar a:

La clave   0 ( 0) no está establecida
La clave   1 ( 1) está establecida
La clave   2 ( 2) está establecida
La clave   3 ( 3) está establecida
La clave   4 ( 4) no está establecida
La clave   5 ( 5) está establecida
La clave   6 ( 6) no está establecida
La clave   7 ( 7) está establecida
La clave   8 ( 8) no está establecida
La clave   9 ( 9) no está establecida
La clave  10 ( a) no está establecida
La clave  11 ( b) está establecida
La clave  12 ( c) no está establecida
La clave  13 ( d) está establecida
La clave  14 ( e) no está establecida
La clave  15 ( f) no está establecida