Esta biblioteca permite manejar nuevos archivos de cremallera y alquitrán sin la necesidad de extensiones de PHP especiales (se necesitan GZ y BZIP para la compresión). Puede crear nuevos archivos o extraer los existentes.
Para mantener las cosas simples, la modificación (agregar o eliminar archivos) de los archivos existentes no es compatible.
Use compositor:
php composer.phar require splitbrain/php-archive
El uso de las clases con cremallera y alquitrán es básicamente el mismo. Aquí hay algunos ejemplos para trabajar con Tars para comenzar.
Consulte los documentos de la API para obtener más información.
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 Las diferencias entre TAR y ZIP: TARS se comprimen en su conjunto, mientras que las zips compriman cada archivo individualmente. Por lo tanto, puede llamar setCompression antes de cada llamada de función addFile() y addData() .
La clase FileInfo se puede usar para especificar información adicional, como propiedad o permisos al agregar un archivo a un archivo.