uint32 とヌルで終了する文字列が混在するバイナリ データがあります。個々のデータ セットのサイズは知っていますが (各データ セットは同じ形式を共有しています)、実際の形式はわかりません。
unpack を使用して、次の関数でデータを読み取りました。
function read_uint32( $fh ){
$return_value = fread($fh, 4 );
$return_value = unpack( 'L', $return_value );
return $return_value[1];
}
function read_string( $fh ){
do{
$char = fread( $fh, 1 );
$return_string .= $char;
}while( ord( $char ) != 0 );
return substr($return_string, 0, -1);
}
次に、基本的に両方の関数を試して、データが文字列として意味があるかどうかを確認します。そうでない場合は、おそらく int です。これを行う簡単な方法はありますか?
ありがとう。