Розбір двійкового файлу в PHP

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

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

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

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

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

Використовуючи мову C, якщо ви хочете зберегти значення 500 у файлі, код буде таким:

 #include int main () {int val = 500; ФАЙЛ * fp = fopen ("файл", "wb"); fwrite (& val, sizeof (int), 1, fp); // зберігати val у файлі fclose (fp); return 0; } 

Відкриваючи цей файл у текстовому редакторі, ви можете вважати його нечитаним, оскільки ваше значення не зберігається як текст, а у двійковому сирому вигляді.

Але, якщо ви використовуєте PHP, часто потрібно отримувати значення, що зберігаються як двійкові файли час від часу. Однак, PHP читає і записує у файли як текст. Для отримання значень необхідно використовувати певну функцію.

Рішення:

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

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

Отже, якщо ми використовуємо файл, який ми зберегли в наведеному вище прикладі, тут наведено код для отримання нашого значення:

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

Попередня Стаття Наступна Стаття

Кращі Поради