php archive
1.0.0
このライブラリを使用すると、特別なPHP拡張機能を必要とせずに、新しいZIPおよびTARアーカイブを処理できます(圧縮にはGZとBZIPが必要です)。新しいファイルを作成したり、既存のファイルを抽出したりできます。
物事をシンプルに保つために、既存のアーカイブの変更(ファイルの追加または削除)はサポートされていません。
Composerを使用してください:
php composer.phar require splitbrain/php-archive
ZIPクラスと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 TARとZIPの違い:TARは全体として圧縮され、ZIPは各ファイルを個別に圧縮します。したがって、各addFile()およびaddData()関数呼び出しの前にsetCompressionを呼び出すことができます。
FileInfoクラスを使用して、ファイルをアーカイブに追加する際に、所有権や権限などの追加情報を指定できます。