(PECL quickhash >= Unknown)
QuickHashIntStringHash::loadFromFile — Este método de fabricación crea un hash desde un fichero
$filename
[, int $size
= 0
[, int $options
= 0
]] )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
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.
Devuelve un nuevo objeto QuickHashIntStringHash.
Ejemplo #3 Ejemplo de QuickHashIntStringHash::loadFromFile()
<?php
$fichero = dirname( __FILE__ ) . "/simple.string.hash";
$hash = QuickHashIntStringHash::loadFromFile(
$fichero,
QuickHashIntStringHash::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) 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