Я хотел бы создать zip-файл в памяти с помощью ZipArchive (или собственного PHP-класса) и прочитать содержимое файла обратно клиенту. Это возможно? Если да, то как?
Файлы, которые я хочу занести в это приложение, составляют максимум 15 МБ. Я думаю, что мы должны быть в хорошей форме.
Взгляните на следующую библиотеку, она позволяет создавать zip-файлы и возвращать их как поток: PHPClasses.org .
Попробуйте ZipStream (ссылка на GitHub repo, также поддерживает установку через Composer ).
С оригинального авторского сайта (сейчас он мертв):
ZipStream – это библиотека для динамической потоковой передачи динамических zip-файлов с PHP без записи на диск вообще на сервере.
Существует еще один поток, говорящий об этом: Манипулировать архивом в памяти с помощью PHP (без создания временного файла на диске)
крапива предложила использовать zip.lib.php из phpmyadmin . Я думаю, что это довольно прочное решение.
FYI zip.lib.php больше не существует, он был заменен на ZipFile.php в тех же библиотеках / папках.