(PECL quickhash >= Unknown)
QuickHashIntHash::loadFromFile — Este método de fabricación crea un hash desde un fichero
$filename
[, int $options
] ) : QuickHashIntHashEste 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\0x11\0', el número de elementos como un número entero de 32 con signo bits en el Endianness del sistema, seguido de números enteros de 32 con signo empaquetados juntos en el Endianness que use el sistema donde se ejecuta el código. Por cada elemento del hash existen dos números enteros de 32 bits con signo almacenados. El primero de cada elemento es la clave, y el segundo es el valor al que pertenece la clave. Un ejemplo podría ser:
Ejemplo #1 Formato de fichero de IntHash de QuickHash
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
Ejemplo #2 Formato de fichero de IntHash de QuickHash
signatura de cabecera ('QH'; tipo de clave: 1; tipo de valor: 1; relleno: \0x00) 00000000 51 48 11 00 número de elementos: 00000004 02 00 00 00 data string: 00000000 01 00 00 00 01 00 00 00 03 00 00 00 09 00 00 00 clave/valor 1 (clave = 1, valor = 1) 01 00 00 00 01 00 00 00 clave/valor 2 (clave = 3, valor = 9) 03 00 00 00 09 00 00 00
filename
El nombre de fichero del fichero desde donde leer el hash.
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 QuickHashIntHash.
Ejemplo #3 Ejemplo de QuickHashIntHash::loadFromFile()
<?php
$fichero = dirname( __FILE__ ) . "/simple.hash";
$hash = QuickHashIntHash::loadFromFile(
$fichero,
QuickHashIntHash::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