我有混合了uint32和null终止字符串的二进制数据。我知道单个数据集的大小(每组数据共享相同的格式),但不是实际的格式。
我一直在使用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,是否有更简单的方法去做这个?
感谢。
答案 0 :(得分:1)