[ PHP ] バイナリデータの設定と取得 ( pack / unpack )

Pocket

PHP では、pack 関数と unpack 関数を使用してバイナリデータを扱うことができます。ここでは、そのサンプルコードを掲載しています。

テキストファイルのデータもバイナリデータではなかろうか・・・

スポンサーリンク

バイナリデータの設定と取得

バイナリデータを変数に設定して、それをバイナリデータ ( 1バイトごとの配列 ) として取得するサンプルコードです。

// バイナリデータを変数に格納する(EUC-JP の全角スペースを3つ)
$space = pack("n*", 0xa1a1, 0xa1a1, 0xa1a1);

// 1バイトずつバイナリデータとして取り出す
$bin_data = unpack("C6chars", $space);
var_dump($bin_data);
// array
//   'chars1' => int 161 (0xa1)
//   'chars2' => int 161 (0xa1)
//   'chars3' => int 161 (0xa1)
//   'chars4' => int 161 (0xa1)
//   'chars5' => int 161 (0xa1)
//   'chars6' => int 161 (0xa1)

echo count($bin_data);
// 6

// バイナリデータを1バイトずつ16進で出力する
for($i=1; $i<=count($bin_data); $i++) {    
    echo '0x' . dechex($bin_data["chars$i"]);
}

// 出力結果
//-------------------------------------
// 0xa1
// 0xa1
// 0xa1
// 0xa1
// 0xa1
// 0xa1
// 
参考
スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *