Intereting Posts

Извлечение данных из двоичных файлов с помощью php

Мне нужно извлечь некоторые данные из двоичного файла. данные начинаются с шестнадцатеричного маркера. Сначала я должен найти этот маркер, а затем извлечь x-байты.

PHP хорош для манипулирования текстовыми файлами.

У кого-то есть хорошая идея сделать это с помощью двоичных данных?

Благодаря !

Related of "Извлечение данных из двоичных файлов с помощью php"

Вам не нужны специальные функции, такие как pack или unpack и т. Д., Хотя пакет может быть полезен для указания иглы для поиска. 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 () и pack () .

Вот пример, который читает весь файл в буфер и использует unpack() для получения значений двух первых символов:

 $fp = fopen("binary.txt", "r"); fseek($fp, 0, SEEK_END); $fs = ftell($fp); fseek($fp, 0, SEEK_SET); $binary = fread($fp, $fs); fclose($fp); $unpacked = unpack("c2", $binary);