Z góry proszę o wyrozumiałość, nie mam doświadczenia przy pracy z danymi binarnymi ani w PHP ani w żadnym innym języku, szukam pomocy, jak to ugryść.
Chce wygenerować plik w formacie ZIP zawierający kilka plików,
problem polega na tym, że pliki te są znacznej wielkości więc nie mogę użyć bibliteki ZLIB czy jakiejkolwiek innej do wygenerowania całego archiwum w pamięci, muszę zrobić to na zasadzie fread()/echo, poziom kompresji ma być zerowy (store).
W tym celu musze nijako zaimplementować format ZIP w php.
Specyfikację znalazłem tutaj:
http://www.pkware.com/documents/casestudies/APPNOTE.TXT
Załózmy że chce mieć w takim archiwum dwa PUSTE pliki o nazwach kolejno '1.txt' i '2.txt'.
Kod
[local file header 1]
[file data 1]
[data descriptor 1]
.
.
.
[local file header n]
[file data n]
[data descriptor n]
[archive decryption header]
[archive extra data record]
[central directory]
[zip64 end of central directory record]
[zip64 end of central directory locator]
[end of central directory record]
[file data 1]
[data descriptor 1]
.
.
.
[local file header n]
[file data n]
[data descriptor n]
[archive decryption header]
[archive extra data record]
[central directory]
[zip64 end of central directory record]
[zip64 end of central directory locator]
[end of central directory record]
Rozumiem że muszę podać sumy kontrole plików w CRC-32, OK, ale czy musze też podac sumę kontrolną całego pliku ZIP?
Czy ktoś mógłby objaśnić jak się za to zabrać?
Z góry dziękuję za pomoc.