Я пытаюсь разобрать объекты дерева Git в PHP. Поскольку формат объекта дерева
tree <length>\0<data>
Мой первый шаг — использовать sscanf () для отделения данных от метаданных:
sscanf($tree, "tree %d\0%s", $length, $raw_data);
К сожалению, $ raw_data никогда не устанавливается так, как должно быть. Мне нужно, чтобы все после этого первого нулевого байта было помещено в $ raw_data. Это может включать пробелы, символы табуляции, новые строки, нули и т. Д., Поскольку оно включает двоичные формы хэшей SHA-1. Так что% s должно быть что-то вроде %[<something that allows all characters>]
, Благодарю.
Задача ещё не решена.
Других решений пока нет …