Perpustakaan ini memungkinkan untuk menangani arsip zip dan tar baru tanpa perlu ekstensi PHP khusus (GZ dan BZIP diperlukan untuk kompresi). Ini dapat membuat file baru atau mengekstrak yang sudah ada.
Agar hal -hal sederhana, modifikasi (menambahkan atau menghapus file) arsip yang ada tidak didukung.
Gunakan komposer:
php composer.phar require splitbrain/php-archive
Penggunaan untuk kelas zip dan tar pada dasarnya sama. Berikut adalah beberapa contoh untuk bekerja dengan TAR untuk memulai.
Periksa dokumen API untuk info lebih lanjut.
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 Perbedaan antara tar dan zip: tar dikompresi secara keseluruhan, sementara ritsleting mengompres setiap file secara individual. Oleh karena itu, Anda dapat menghubungi setCompression sebelum setiap addFile() dan addData() panggilan fungsi.
Kelas FileInfo dapat digunakan untuk menentukan info tambahan seperti kepemilikan atau izin saat menambahkan file ke arsip.