QuickHashStringIntHash::loadFromFile
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
QuickHashStringIntHash::loadFromFile
Референца за `quickhashstringinthash.loadfromfile.php` со подобрена типографија и навигација.
QuickHashStringIntHash::loadFromFile
(Нема достапни информации за верзијата, можеби е само во Git)
QuickHashStringIntHash::loadFromFile — Овој фабрички метод креира хеш од датотека
= NULL
$filename, int $size = 0, int $options = 0): QuickHashStringIntHash
Овој фабрички метод создава хеш од датотека 'QH\0x21\0'Овој фабрички метод создава нов хеш од датотека со дефиниција на дискот. Форматот на датотеката се состои од потпис
, бројот на елементи како 32-битен потпишан цел број во системската ендијанност, непотпишан 32-битен цел број што го содржи бројот на податоци за елементи што следат во знаци. Овие податоци за елементи ги содржи сите низи. Потоа следи друг потпишан 32-битен цел број што го содржи бројот на списоци со кофи. По заглавјето и низите, следат елементите. Тие се нарачани по списоци со кофи, така што клучевите не мора да се хешираат за да се врати хешот. За секој список со кофи, се чуваат следните информации (сите како 32-битни цели броеви): индексот на списокот со кофи, бројот на елементи во тој список, а потоа во парови од два непотпишани 32-битни цели броеви елементите, каде првиот е индексот во списокот со низи што го содржи клучот, а вториот вредноста. Пример може да биде:
00000000 51 48 21 00 02 00 00 00 09 00 00 00 40 00 00 00 |QH!.........@...| 00000010 4f 4e 45 00 4e 49 4e 45 00 07 00 00 00 01 00 00 |ONE.NINE........| 00000020 00 00 00 00 00 01 00 00 00 2f 00 00 00 01 00 00 |........./......| 00000030 00 04 00 00 00 03 00 00 00 |.........| 00000039
Пример #1 Формат на датотека QuickHash StringIntHash
header signature ('QH'; key type: 2; value type: 1; filler: \0x00)
00000000 51 48 21 00
number of elements:
00000004 02 00 00 00
length of string values (9 characters):
00000008 09 00 00 00
number of hash bucket lists (this is configured for hashes as argument to the
constructor normally, 64 in this case):
0000000C 40 00 00 00
string values:
00000010 4f 4e 45 00 4e 49 4e 45 00
bucket lists:
bucket list 1 (with key 7, and 1 element):
header:
07 00 00 00 01 00 00 00
elements (key index: 0 ('ONE'), value = 0):
00 00 00 00 01 00 00 00
bucket list 2 (with key 0x2f, and 1 element):
header:
2f 00 00 00 01 00 00 00
elements (key index: 4 ('NINE'), value = 3):
04 00 00 00 03 00 00 00
Параметри
filename- Пример #2 Формат на датотека QuickHash IntHash
size-
Количината на листи со кофи за конфигурирање. Бројот што ќе го внесете автоматски ќе се заокружи на следниот степен на два. Исто така, автоматски е ограничен од
4to4194304. options- Името на датотеката од која треба да се прочита хешот. QuickHashIntHash and QuickHashIntStringHash Истите опции што ги зема конструкторот на класата; освен што опцијата за големина се игнорира. Се чита од форматот на датотеката (за разлика од
Вратени вредности
параметарот специфицира само излезна кодировка. Ако се помине празен стринг, парсерот се обидува да идентификува во која кодировка е документот кодиран со гледање на првите 3 или 4 бајти. Стандардната излезна кодировка е UTF-8. Поддржаните кодировки се QuickHashStringIntHash.
Примери
Пример #3 класите, каде што автоматски се пресметува од бројот на записи во хешот.) example
<?php
$file = dirname( __FILE__ ) . "/simple.hash.string";
$hash = QuickHashStringIntHash::loadFromFile(
$file,
QuickHashStringIntHash::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
$i = 48712 + $key * 1631;
$k = base_convert( $i, 10, 36 );
echo $k, ' => ', $hash->get( $k ), "\n";
}
?>Горниот пример ќе прикаже нешто слично на:
11l4 => 48712 12uf => 50343 143q => 51974 15d1 => 53605 16mc => 55236 17vn => 56867 194y => 58498 1ae9 => 60129 1bnk => 61760 1cwv => 63391 1e66 => 65022 1ffh => 66653 1gos => 68284 1hy3 => 69915 1j7e => 71546 1kgp => 73177