(PECL quickhash >= Unknown)
QuickHashIntHash::loadFromFile — ファイルからハッシュを作るファクトリーメソッド
$filename
[, int $options
] )ディスク上の定義ファイルから新しいハッシュを作るファクトリーメソッドです。 ファイルフォーマットは、まずシグネチャ 'QH\0x11\0'、 そして要素数を表す 32 ビット符号付き整数値 (システムと同じエンディアン)、 その後に、システムと同じエンディアンでパックされた 32 ビット符号付き整数値が続きます。 ハッシュの各要素が、二つの 32 ビット符号付き整数値として格納されています。 最初の値がキー、そして次がそのキーの値となります。 以下に例を示します。
例1 QuickHash IntHash ファイルフォーマット
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
例2 QuickHash IntHash ファイルフォーマット
header signature ('QH'; key type: 1; value type: 1; filler: \0x00) 00000000 51 48 11 00 number of elements: 00000004 02 00 00 00 data string: 00000000 01 00 00 00 01 00 00 00 03 00 00 00 09 00 00 00 key/value 1 (key = 1, value = 1) 01 00 00 00 01 00 00 00 key/value 2 (key = 3, value = 9) 03 00 00 00 09 00 00 00
filename
ハッシュを読み込むファイルのファイル名。
options
クラスのコンストラクタが受け取るのと同じオプション。 size オプションは無視されます。 サイズはハッシュのエントリをもとにして自動的に算出され、 2 の階乗の中で直近の値に切り上げられます。 最大値は 4194304 です。
新しい QuickHashIntHash を返します。
例3 QuickHashIntHash::loadFromFile() の例
<?php
$file = dirname( __FILE__ ) . "/simple.hash";
$hash = QuickHashIntHash::loadFromFile(
$file,
QuickHashIntHash::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
printf( "Key %3d (%2x) is %s\n",
$key, $key,
$hash->exists( $key ) ? 'set' : 'unset'
);
}
?>
上の例の出力は、 たとえば以下のようになります。
Key 0 ( 0) is unset Key 1 ( 1) is set Key 2 ( 2) is set Key 3 ( 3) is set Key 4 ( 4) is unset Key 5 ( 5) is set Key 6 ( 6) is unset Key 7 ( 7) is set Key 8 ( 8) is unset Key 9 ( 9) is unset Key 10 ( a) is unset Key 11 ( b) is set Key 12 ( c) is unset Key 13 ( d) is set Key 14 ( e) is unset Key 15 ( f) is unset