Эта библиотека позволяет обрабатывать новые архивы Zip и TAR без необходимости каких -либо специальных расширений PHP (GZ и BZIP необходимы для сжатия). Он может создавать новые файлы или извлечь существующие.
Чтобы сделать вещи простыми, модификация (добавление или удаление файлов) существующих архивов не поддерживается.
Используйте композитор:
php composer.phar require splitbrain/php-archive
Использование классов Zip и TAR в основном одинаково. Вот несколько примеров для работы с Tars, чтобы вы начали.
Проверьте документы API для получения дополнительной информации.
require_once ' vendor/autoload.php ' ;
use splitbrain PHPArchive Tar ;
// To list the contents of an existing TAR archive, open() it and use
// contents() on it:
$ tar = new Tar ();
$ tar -> open ( ' myfile.tgz ' );
$ toc = $ tar -> contents ();
print_r ( $ toc ); // array of FileInfo objects
// To extract the contents of an existing TAR archive, open() it and use
// extract() on it:
$ tar = new Tar ();
$ tar -> open ( ' myfile.tgz ' );
$ tar -> extract ( ' /tmp ' );
// To create a new TAR archive directly on the filesystem (low memory
// requirements), create() it:
$ tar = new Tar ();
$ tar -> create ( ' myfile.tgz ' );
$ tar -> addFile (...);
$ tar -> addData (...);
. . .
$ tar -> close ();
// To create a TAR archive directly in memory, create() it, add*()
// files and then either save() or getArchive() it:
$ tar = new Tar ();
$ tar -> setCompression ( 9 , Archive:: COMPRESS_BZIP );
$ tar -> create ();
$ tar -> addFile (...);
$ tar -> addData (...);
. . .
$ tar -> save ( ' myfile.tbz ' ); // compresses and saves it
echo $ tar -> getArchive (); // compresses and returns it Различия между TAR и ZIP: TAR сжимаются в целом, в то время как ZIPS сжимает каждый файл индивидуально. Поэтому вы можете вызвать setCompression перед каждым вызовом функции addFile() и addData() .
Класс FileInfo может использоваться для указания дополнительной информации, такой как владение или разрешения при добавлении файла в архив.