Как можно понять из названия темы - предназначена для работы с data файлами. А конкретнее - их чтение. Может быть полезна php разработчиками, если , к примеру, необходимо спарсить какой-то data файл в базу. Список методов: PHP: offsetreadBytereadInt16readUInt16readUInt16_bereadUInt16_lereadInt32readUInt32readUInt32_bereadUInt32_leintToFloat16UIntToFloat16intToFloat32UIntToFloat32readFloat16readFloat32readFloat64floatToInt16floatToUInt16floatToInt32floatToUInt32readChars8readChars16readStruct Конструктор принимает массив с 2 элементами. PHP: array('путь_к_data_файлу', 'имя_папки_со_структурами'); Второй элемент не обязателен. К примеру, узнать версию elements.data можно так: PHP: <?php$reader = new BinReader(array('elements.data'));echo $reader->readUInt16(); Названия методов, думаю, интуитивно понятные. Основная полезность библиотеки в том, что для data файлов можно написать структуры и далее для чтения файла можно просто указывать нужную структуру, вызывая метод readStruct(), и все. Простой пример. Прочитаем первые пару значений elements.data , читая файл по структуре. Узнаем версию элика и количество записей в первом листе: Чтитаем: UInt16 (2 байта), потом идет смещение на 6 байт, и потом количество записей в первом листе Int32 (4 байта) В качестве параметра методу readStruct() можно передавать не только саму структуру, но и имя файла, в котором она описана. Как можно заметить, структура - это обычный ассоциативный массив ключ => значение, где значение - тип данных, который нужно считать, а ключ - ключ в массиве с результатом. В значении указывается имя метода без префикса read . То есть, если целое знаковое число (4 байта == 32 бита) у нас считывается методом readInt32(), то в структуре в значении нам надо написать Int32 . Через точку с запятой можно передавать параметры для вызываемых методов. К примеру, если нам надо считать 10 символов по 1 байту, то мы реализуем это так: PHP: $struct = array( 'str' => 'Chars8;10', ); var_dump($reader->readStruct($struct)); Так же при описании структуры нам доступны некоторые директивы (перед директивой ставится двоеточие) 1) :offset=количество_байт - предназначено для произведения смещения при чтении файла по структуре. Пример использования можно увидеть на первом скрине. 2) :unset=ключ - удаляет элемент результирующего массива по его ключу. Пример использования: 3) ':struct=ключ' => '/* Тут массив со структурой или имя файла со структурой */' Эта директива предназначена для чтения структуры в структуре. При чтении достаточно большого файла и сложного файла на много удобнее будет разбить всю структуру на меньшие под структуры. К примеру - структура для чтения elements.data можно реализовать как структуру для чтения структур листов. 4) ':cycle=параметр_1;параметр_2' => '/* Тут массив со структурой или имя файла со структурой */' - Предназначено для чтения определенной структуры заданное количество раз. параметр_1 = Количество итераций. Вместо количества итераций можно указать ключ элемента результирующего массив, тогда количество итераций будет взято с этого элемента. К примеру - можно использовать для чтения листов elements.data . Пример использования: 5) Конструкция: [:field_val=ключ] - предназначена для использования значений предыдущих элементов результирующего массива в текущем элементе. Пример: Как то так. Если будут вопросы, то пишите в эту тему. В архиве вместе с самой библиотекой приложил готовый пример парсинга world_targets.sev Результат парсинга world_targets.sev :