我必須從二進制文件中提取一些數據。數據以十六進制標記開始。 我先找到這個標記,然後提取x個字節。用php從二進制文件中提取數據
PHP適用於文本文件操作。
有人有一個好主意,用二進制數據做到這一點?
謝謝!
我必須從二進制文件中提取一些數據。數據以十六進制標記開始。 我先找到這個標記,然後提取x個字節。用php從二進制文件中提取數據
PHP適用於文本文件操作。
有人有一個好主意,用二進制數據做到這一點?
謝謝!
你不需要任何特殊功能,如包或解壓縮等。 ..雖然包裝可能會用於指定要搜索的針。 php不對字符串應用任何字符編碼,它將它們保留原樣,所以默認情況下它是二進制友好的。
$hexMarker = 0x70000000;// or whatever
$binaryData = file_get_contents($filename);
$x = 5;
$pos = strpos($binaryData, $hexMarker);
if ($pos !== false) {
$start = $pos + strlen($hexMarker);
echo substr($binaryData, $start, $x);
}
你可以考慮以迭代方式使用fopen和fread如果文件的大小很龐大,file_get_contents會消耗大量的內存在這種情況下。但無論如何,這是一個單獨的問題。
嘗試[unpack()](http://sk.php.net/manual/en/function.unpack.php) – Vyktor 2012-01-15 19:26:11