QuickHashIntStringHash::loadFromFile

(PECL quickhash >= Unknown)

QuickHashIntStringHash::loadFromFileФабричный метод создаёт хеш из файла

Описание

publicstaticQuickHashIntStringHash::loadFromFile(string$filename, int$size = 0, int$options = 0): QuickHashIntStringHash

Этот фабричный метод создаёт новый хеш из файла определения на диске. Формат файла состоит из сигнатуры 'QH\0x12\0', количества элементов в виде 32-битного целого числа со знаком в системном порядке байтов, затем 32-битных целых чисел со знаком, упакованных вместе в системный порядок байтов. Для каждого элемента хеша хранятся два 32-битных целых числа со знаком. Первое из них - ключ, а второе - значение, принадлежащее ключу. Примером может быть:

Пример #1 Формат файла 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

Пример #2 Формат файла QuickHash IntString

header signature ('QH'; key type: 1; value type: 2; filler: \0x00) 00000000 51 48 12 00 number of elements: 00000004 02 00 00 00 length of string values (9 characters): 00000008 09 00 00 00 string values: 0000000C 4f 4e 45 00 4e 49 4e 45 00 data string: 00000015 01 00 00 00 00 00 00 00 03 00 00 00 04 00 00 00 key/value 1 (key = 1, string index = 0 ("ONE")): 01 00 00 00 00 00 00 00 key/value 2 (key = 3, string index = 4 ("NINE")): 03 00 00 00 04 00 00 00

Список параметров

filename

Имя файла, из которого нужно считать хеш.

size

Количество списков, которое необходимо настроить. Переданное число будет автоматически округлено до следующей степени числа 2. Оно также автоматически ограничивается от 4 до 4194304.

options

Те же параметры, которые принимает конструктор класса; за исключением того, что игнорируется параметр size. Он автоматически вычисляется как количество записей в хеше, округляется до ближайшей степени числа 2 с максимальным ограничением 4194304.

Возвращаемые значения

Возвращает новый объект QuickHashIntStringHash.

Примеры

Пример #3 Пример использования 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( "Ключ %3d (%2x) %s\n",
$key, $key,
$hash->exists( $key ) ? 'установлен' : 'не установлен'
);
}
?>

Вывод приведённого примера будет похож на:

Ключ 0 ( 0) не установлен Ключ 1 ( 1) установлен Ключ 2 ( 2) установлен Ключ 3 ( 3) установлен Ключ 4 ( 4) не установлен Ключ 5 ( 5) установлен Ключ 6 ( 6) не установлен Ключ 7 ( 7) установлен Ключ 8 ( 8) не установлен Ключ 9 ( 9) не установлен Ключ 10 ( a) не установлен Ключ 11 ( b) установлен Ключ 12 ( c) не установлен Ключ 13 ( d) установлен Ключ 14 ( e) не установлен Ключ 15 ( f) не установлен
To Top