Работа с файлами определенного формата

Статус
В этой теме нельзя размещать новые ответы.

HatoL

Профессор
Регистрация
5 Фев 2008
Сообщения
206
Реакции
36
У меня есть описание одного формата файла. Там описывается как располагаются байты в файле, сколько по размеру занимает тот или иной блок. Первое решение писать программу в лоб. Файлы не очень большие, то есть можно прочитать весь файл с помощью file_get_contents(), а потом циклами и прочими штуками прочитывать информацию дальше.

А как-нибудь более стандартизированно это делать можно? Чтобы человек, читающий программу, мог сразу понять, как устроен файл внутри. Слышал в Си как-то описывают это все структурами (struct), а потом читают файл.
 
fread в сишнике вроде может
примерно так:
объявляем структуру в соответствии с устройством файла
struct FileStruc
{
<type> <name>;
<type> <name>;
<type> <name>;
};

код

FILE *fp;
fp=fopen("file.dat", "r");
FileStruc raws[1000];

for(int i=0;i<1000;i++)
fread(&raws[i], sizeof(raws), 1, fp);
fclose(fp);
это набросок, конечно, сначала надо б определить сколько строк в файле чтобы размер массива и цикла задать, но это уже детали)
 
HatoL, ну других вариантов, кроме как в лоб я на PHP не вижу. Другой вопрос, надо ли проверять всё подряд: тут, скорее, большой и сложной регулярки хватит... В любом случае, без открытия файла и прохода по нему PHP его содержимое просматривать, увы, не умеет...
Единственное исключение - есть готовые библиотеки, подгружаемые в сам PHP, которые позволяют проверять синтексис. Например, такая библиотека есть для проверки XML на валидантность...
 
Насколько я знаю, с двоичными данными в PHP работа идет через
Код:
http://php.net/manual/ru/function.pack.php
и
Код:
http://php.net/manual/ru/function.unpack.php
Вот обсуждение применительно с структурами на буржуйском
Код:
http://stackoverflow.com/questions/3993762/php-passing-c-struct-data-throught-socket-programming
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху