pack(string $format, mixed …$values): string
指定された引数を format に基づいて バイナリ文字列にパックします。
unpack(string $format, string $string, int $offset = 0): array|false
format に基づき、バイナリ文字列から配列に分解します。
分解した結果は連想配列に格納されます。 このようにするには、別のフォーマットコードを使用してそれらを スラッシュ / で区切る必要があります。 引数にリピータが含まれる場合の配列の要素名は、 指定した名前の後に順番に番号がついたものとなります。
要素に名前をつけなければ、1 から始まる数値インデックスを用います。 名前をつけない要素が複数ある場合は、データが上書きされてしまうかもしれないことに注意しましょう。 それぞれの要素について、数値インデックスが 1 から割りあてられるからです。
//要素に名前を付ける例
$binarydata = "\x04\x00\xa0\x00";
$array = unpack("c2chars/nint", $binarydata);
print_r($array);
/*
Array
(
[chars1] => 4
[chars2] => 0
[int] => 40960
)
*/
// 文字列を2進数へ変換
$test = unpack('H*', "pass");
$test = base_convert($test[1], 16, 2);
echo $test;
// アウトプット: 1110000011000010111001101110011
// 2進数を文字列に変換
echo pack('H*', base_convert($test, 2, 16));
// アウトプット: pass
hrtime(bool $as_number = false): array|int|float|false
任意のタイミングから計測したシステムの高精度な時刻を取得します。 返されたタイムスタンプは単調であり、調整できません。
as_number が false の場合は、 [秒, ナノ秒] の形式で数値の配列を返します。 true の場合、ナノ秒を (64ビットプラットフォームの場合) int または float (32ビットプラットフォームの場合) として返します。 失敗した場合は false を返します。