[PHP-users 29215] Re: PHP でのバイナリの扱いについて

KOYAMA Tetsuji koyama @ hoge.org
2006年 5月 16日 (火) 15:20:25 JST


小山です。

On 5/16/06, Matsumoto Taichi <taichino @ naoko-takeuchi.net> wrote:
> PHPのバイナリデータの扱いについて質問させてください。
>
> ファイルをバイナリデータとして
> 読み込み、その値を基にして処理を行いたいのですが、
> うまく行きません。
> 読み込みたいファイルは暫定的に4バイトの整数値を保持させています。
> (例えば0x00000001)
> この値を取得したいのです。
> (例で言うと1を取得したいです。)

PHPでバイナリデータを読み込むには unpack 関数を使用します。
ファイル名 'hoge.bin' に unsigned long の 0x01 が書かれているとして、
以下のように読み込みます。

$fh = fopen('hoge.bin', 'r'b');
$buf = fread($fh, 4);
$val = unpack('L', $buf);
fclose($fh);

ここで $val [0] は 1 になります。

ただバイトエンディアンには注意してください。unpack に渡すフォーマット
文字列を変更することで、いろいろな読み方ができるようになります。

-- 
    小山哲志@ビート・クラフト
    koyama @ beatcraft.com
    koyama @ hoge.org


PHP-users メーリングリストの案内