تسمح هذه المكتبة بالتعامل مع أرشيفات zip و tar الجديدة دون الحاجة إلى أي امتدادات خاصة لـ PHP (هناك حاجة إلى GZ و BZIP للضغط). يمكنه إنشاء ملفات جديدة أو استخراج الملفات الموجودة.
للحفاظ على الأمور بسيطة ، لا يتم دعم التعديل (إضافة أو إزالة الملفات) من المحفوظات الموجودة.
استخدم الملحن:
php composer.phar require splitbrain/php-archive
استخدام فصول الرمز البريدي و TAR هو نفسه في الأساس. فيما يلي بعض الأمثلة للعمل مع القطران لتبدأ.
تحقق من مستندات 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 الاختلافات بين القطران والرمز البريدي: يتم ضغط القطران ككل ، بينما تضغط Zips لكل ملف بشكل فردي. لذلك يمكنك استدعاء setCompression قبل كل مكالمة دالة addFile() و addData() .
يمكن استخدام فئة FileInfo لتحديد معلومات إضافية مثل الملكية أو الأذونات عند إضافة ملف إلى أرشيف.