[PHP-users 29214] Re: PHP でのバイナリの扱いについて
monry
monry84 @ gmail.com
2006年 5月 16日 (火) 15:18:46 JST
森です。
> PHPのバイナリデータの扱いについて質問させてください。
>
> ファイルをバイナリデータとして
> 読み込み、その値を基にして処理を行いたいのですが、
> うまく行きません。
> 読み込みたいファイルは暫定的に4バイトの整数値を保持させています。
> (例えば0x00000001)
> この値を取得したいのです。
> (例で言うと1を取得したいです。)
(中略)
> それを以下のように書いています。
> ---
> // ファイルをオープンする
> $fileHandle = fopen($filename, "rb");
>
> if ($fileHandle) {
> $content = fread($fileHandle, filesize($filename));
> // この $contentの値を元に処理したいが
> // 値が読み込めない
> var_dump($content); // この出力は string(4) ""となる
>
> fclose($fileHandle);
> }
> ---
>
> 固定長フォーマットのファイルを扱うために必要なのですが、
> このような処理をPHPで行うにはどのようにすればよろしいのでしょうか。
> マニュアル等を探してみたのですが、探し出すことが出来ませんでした。
>
> 以上、大変お手数ですがご教授願えないでしょうか。
> よろしくお願いいたします。
記憶が定かではないのですが、var_dumpはバイナリセーフな関数では
なかった筈です。
そのため、バイナリ文字列を渡すと正常な動作をしない可能性があります。
故に、bin2hexやunpackなどを用いて一度、非バイナリな値に変換を行えば
値の取得が出来るかと思われます。
例:)
[before]
ver_sump($content);
[after]
echo bin2hex($content);
お試し下さい。
--
written by T.Mori.
PHP-users メーリングリストの案内