Tworzę archiwum ZIP z plikami txt. Odbywa się to w pętli. Skrypt tworzy pliki txt na podstawie predefiniowanych nazw tych plików i ich zawartości. Np:
Kod
//dla czytelnośći dodałem tutaj spacje między nazwą pliku a pipe a zawartością. Normalnie ich nie ma
Plik 1 | Zawartość bla bla 1
Plik 2 | Zawwwwartość 222
Plik 1 | dodatkowa zawartość 1
Plik 3 | zaw 3
Plik 1 | Zawartość bla bla 1
Plik 2 | Zawwwwartość 222
Plik 1 | dodatkowa zawartość 1
Plik 3 | zaw 3
Zwróćcie uwagę, że Plik 1 powtórzył się dwa razy, więc jego zawartośc powinna wyglądać następująco:
Kod
Zawartość bla bla 1
dodatkowa zawartość 1
dodatkowa zawartość 1
Niestety moje skrypciwo dodaje jedynie zawartość z ostatniego wystąpienia pary " 'nazwa pliku' | 'zawartość' " czyli Plik 1 będzie zawierał jedynie 'dodatkowa zawartość 1'.
Myślę, że najlepiej jest zmodyfikować tę linijkę: $zip->addFromString($file_name,$file_input); tak, aby nadpisując istniejący plik dodawało zawartość na jego końcu, od nowej lini. Jak to osiągnąć? Pomóżcie.
$zip = new ZipArchive(); $filename = "./pliczekzip.zip"; if ($zip->open($filename, ZipArchive::CREATE)!==TRUE) { } $cells=''; $seperate_files=$cells_from_file; $file_input=''; foreach($seperate_files as $sf){ $file_name=$file_content_split[0]; foreach($file_content as $fc){ $colls=$cells[0]; $rows=$cells[1]; $file_input.=$xlsx_file_modified[$rows][$colls]; $file_input.="\t"; } $file_name='S'.$file_name_prefix.$file_name; $zip->addFromString($file_name,$file_input); $file_input=''; } $zip->close();