QuickHashIntHash::loadFromFile

(PECL quickhash >= Unknown)

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

Descripción

public static QuickHashIntHash::loadFromFile ( string $filename [, int $options ] ) : QuickHashIntHash

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\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

Parámetros

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.

Valores devueltos

Devuelve un nuevo objeto QuickHashIntHash.

Ejemplos

Ejemplo #3 Ejemplo de QuickHashIntHash::loadFromFile()

<?php
$fichero 
dirname__FILE__ ) . "/simple.hash";
$hash QuickHashIntHash::loadFromFile(
    
$fichero,
    
QuickHashIntHash::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