Разбор двоичного файла в PHP

Файлы данных двоичного кода используются для программирования на научно используемых низкоуровневых языках программирования, таких как C, которые невозможно согласованно перевести в текстовый формат.

Используя любой низкоуровневый язык для хранения заданного значения, двоичный код должен использоваться, как только вы загрузите его в текстовом редакторе, чтобы записать или прочитать его.

Двоичный файл не может быть прочитан как он есть в необработанном двоичном формате на таких языках, как Pascal. Следовательно, веб-мастера используют PHP для чтения и записи файлов в виде текста. Для получения ваших значений должна использоваться определенная функция.

PHP использует уникальную функцию unpack (). После объявления первого аргумента типа данных вам необходимо восстановить и создать второй аргумент в виде строки, из которой вы хотите извлечь данные. Восстанавливаемые данные должны быть в символических аргументах.

При использовании языков низкого уровня, таких как C или Pascal, это обычная процедура для хранения данных в двоичном файле (запись, которая не может быть переведена в текст).

Используя язык C, если вы хотите сохранить значение 500 в файле, код будет следующим:

 #include int main () {int val = 500; FILE * fp = fopen ("file", "wb"); fwrite (& val, sizeof (int), 1, fp); // сохранить val в "file" fclose (fp); вернуть 0; } 

Когда вы открываете этот конкретный файл в текстовом редакторе, вы можете обнаружить, что он не читается, потому что ваше значение сохраняется не в виде текста, а в виде двоичного файла.

Но если вы используете PHP, часто необходимо извлекать значения, хранящиеся в двоичном виде время от времени. Тем не менее, PHP читает и пишет в файлы в виде текста. Для получения ваших значений должна использоваться определенная функция.

Решение:

Функция unpack () может быть использована для решения такого рода проблем. Сначала необходимо указать тип данных, которые вы хотите восстановить, а затем строку, из которой вы хотите получить данные.

Тип данных, подлежащих восстановлению, должен быть детализирован с использованием соответствующего символа. Например, чтобы получить целое число со знаком, используйте символ i .

Так что, если мы используем файл, который мы сохранили в примере выше, вот код для получения нашего значения:

    • Важные заметки:
  • Размер данных может меняться в зависимости от архитектуры процессора (Sparc, ARM, PowerPC).
    • Программа, написанная на C, использует целые числа разных размеров от 32 до 64 бит.
    • Расположение данных может не совпадать. Некоторые машины хранят данные в Big Endian, другие в Little Endian.
    • Размер данных может варьироваться в зависимости от компилятора
    • Функция unpack возвращает массив немного более сложный, чем тот, который приведен здесь в качестве примера. В нашем случае с одним запрошенным значением наше значение находится в смещении 1 массива.
  • Типы данных для 32-битного ПК
    • Вот таблица, показывающая данные, записанные программой на C, скомпилированные для 32-битного ПК:
    • символ : с
    • символ без знака : C
    • коротко : s
    • без знака короткий : S
    • int : I
    • без знака int : L
    • float : f
    • двойной : d

Предыдущая статья Следующая статья

Лучшие советы