(PECL quickhash >= Unknown)
QuickHashIntStringHash::loadFromFile — Este método de fábrica crea un hash a partir de un fichero
$filename, int $size = 0, int $options = 0): QuickHashIntStringHash
Este método de fábrica crea un nuevo hash a partir de un fichero de definición en el disco. El
formato del fichero consiste en una firma 'QH\0x12\0', el número de elementos como
un entero signado de 32 bits en Endianness del sistema, un entero no signado de 32 bits
conteniendo el número de datos de elementos a seguir en caracteres. Estos datos
de elementos contienen todas las strings. Después del encabezado y las strings, los
elementos siguen por pares de dos enteros no signados de 32 bits donde el primero
es la clave, y el segundo el índice en la string de datos de elementos.
Un ejemplo podría ser:
Ejemplo #1 Formato de fichero 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
Ejemplo #2 Formato de fichero QuickHash IntString
firma del encabezado ('QH'; tipo de clave: 1; tipo de valor: 2; relleno: \0x00)
00000000 51 48 12 00
número de elementos:
00000004 02 00 00 00
longitud de 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 de string = 0 ("ONE")):
01 00 00 00 00 00 00 00
clave/valor 2 (clave = 3, índice de string = 4 ("NINE")):
03 00 00 00 04 00 00 00
filenameEl nombre del fichero desde el cual leer el hash.
size
La cantidad de listas de cubos a configurar. El número que se pasa será
automáticamente redondeado a la siguiente potencia de dos. También está
automáticamente limitado de 4 a 4194304.
options
Las mismas opciones que el constructor de la clase; excepto que la opción
size es ignorada. Se calcula automáticamente para ser la misma que
el número de entradas en el hash, redondeada a la potencia de dos más cercana
con un límite máximo de 4194304.
Devuelve un nuevo QuickHashIntStringHash.
Ejemplo #3 Ejemplo de 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'
);
}
?>Resultado del ejemplo anterior es similar a:
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