Quickhash QuickHashStringIntHash::loadFromFile

(사용 가능한 버전 정보가 없으며 Git에만 있을 수 있음)

QuickHashStringIntHash::loadFromFile — 이 팩토리 메소드는 파일에서 해시를 생성합니다.


설명

public static QuickHashStringIntHash::loadFromFile(string $filename, int $size = 0, int $options = 0): QuickHashStringIntHash

이 팩토리 메소드는 디스크의 정의 파일에서 새 해시를 생성합니다. 파일 형식은 서명 'QH\0x21\0', 시스템 Endianness의 32비트 부호 있는 정수로 된 요소 수, 문자로 따를 요소 데이터 수를 포함하는 부호 없는 32비트 정수로 구성됩니다. 이 요소 데이터에는 모든 문자열이 포함됩니다. 버킷 목록의 수를 포함하는 또 다른 부호 있는 32비트 정수 다음에 옵니다. 헤더와 문자열 다음에 요소가 옵니다. 해시를 복원하기 위해 키를 해시할 필요가 없도록 버킷 목록에 따라 정렬됩니다. 각 버킷 목록에 대해 다음 정보가 저장됩니다(모두 32비트 정수로). 버킷 목록 인덱스, 해당 목록의 요소 수, 그리고 두 개의 부호 없는 32비트 정수 쌍으로 요소(여기서 첫 번째 것은 키를 포함하는 문자열 목록에 대한 색인과 값을 포함하는 두 번째 것. 예를 들면 다음과 같습니다.

예제 #1 QuickHash StringIntHash 파일 형식

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
                

예제 #2 QuickHash IntHash 파일 형식

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
해시를 읽을 파일의 파일 이름입니다.
size
구성할 버킷 목록의 양입니다. 전달한 숫자는 자동으로 다음 2의 거듭제곱으로 반올림됩니다. 또한 자동으로 4에서 4194304로 제한됩니다.
options
클래스의 생성자가 취하는 것과 동일한 옵션; 크기 옵션이 무시된다는 점을 제외하고. 파일 형식에서 읽습니다(해시 항목 수에서 자동으로 계산되는 QuickHashIntHashQuickHashIntStringHash 클래스와 달리).

반환 값

QuickHashStringIntHash를 반환합니다.


Examples

예제 #3 QuickHashStringIntHash::loadFromFile() 예제

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