Chris@18: Chris@18: Chris@18: Archive_Tar Chris@18: pear.php.net Chris@18: Tar file management class Chris@18: This class provides handling of tar files in PHP. Chris@18: It supports creating, listing, extracting and adding to tar files. Chris@18: Gzip support is available if PHP has the zlib extension built-in or Chris@18: loaded. Bz2 compression is also supported with the bz2 extension loaded. Chris@18: Also Lzma2 compressed archives are supported with xz extension. Chris@18: Chris@18: Vincent Blavet Chris@18: vblavet Chris@18: vincent@phpconcept.net Chris@18: no Chris@18: Chris@18: Chris@18: Greg Beaver Chris@18: cellog Chris@18: greg@chiaraquartet.net Chris@18: no Chris@18: Chris@18: Chris@18: Michiel Rook Chris@18: mrook Chris@18: mrook@php.net Chris@18: yes Chris@18: Chris@18: Chris@18: Stig Bakken Chris@18: ssb Chris@18: stig@php.net Chris@18: no Chris@18: Chris@18: 2019-04-08 Chris@18: Chris@18: Chris@18: 1.4.7 Chris@18: 1.4.0 Chris@18: Chris@18: Chris@18: stable Chris@18: stable Chris@18: Chris@18: New BSD License Chris@18: Chris@18: * Improved performance by increasing read buffer size Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: PEAR Chris@18: pear.php.net Chris@18: 1.8.0 Chris@18: 1.10.10 Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: 5.2.0 Chris@18: Chris@18: Chris@18: 1.9.0 Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: 1.4.6 Chris@18: 1.4.0 Chris@18: Chris@18: Chris@18: stable Chris@18: stable Chris@18: Chris@18: 2019-02-01 Chris@18: New BSD License Chris@18: Chris@18: * Improve path traversal detection for forward and backward slashes Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: 1.4.5 Chris@18: 1.4.0 Chris@18: Chris@18: Chris@18: stable Chris@18: stable Chris@18: Chris@18: 2019-01-02 Chris@18: New BSD License Chris@18: Chris@18: * Fix Bug #23788: Relative symlinks are broken [mrook] Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: 1.4.4 Chris@18: 1.4.0 Chris@18: Chris@18: Chris@18: stable Chris@18: stable Chris@18: Chris@18: 2018-12-20 Chris@18: New BSD License Chris@18: Chris@18: * Fix Bug #21058: Long symlinks are not supported [mrook] Chris@18: * Fix Bug #23782: Prevent phar:// files from being extracted [mrook] Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: 1.4.3 Chris@18: 1.4.0 Chris@18: Chris@18: Chris@18: stable Chris@18: stable Chris@18: Chris@18: 2017-06-11 Chris@18: New BSD License Chris@18: Chris@18: * Fix Bug #21218: Cannot use result of built-in function in write context in PHP Chris@18: 7.2.0alpha1 [mrook] Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: 1.4.2 Chris@18: 1.4.0 Chris@18: Chris@18: Chris@18: stable Chris@18: stable Chris@18: Chris@18: 2016-02-25 Chris@18: New BSD License Chris@18: Chris@18: * Fix reading of archives with files > 8GB Chris@18: * Performance optimizations Chris@18: * Do not try to call require_once on PEAR.php if it has already been loaded by the autoloader Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: 1.4.1 Chris@18: 1.4.0 Chris@18: Chris@18: Chris@18: stable Chris@18: stable Chris@18: Chris@18: 2015-08-05 Chris@18: New BSD License Chris@18: Chris@18: * Update composer.json to use pear-core-minimal 1.10.0alpha2 Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: 1.4.0 Chris@18: 1.4.0 Chris@18: Chris@18: Chris@18: stable Chris@18: stable Chris@18: Chris@18: 2015-07-20 Chris@18: New BSD License Chris@18: Chris@18: * Add support for PHP 7 Chris@18: * Drop support for PHP 4 Chris@18: * Add visibility declarations to methods and properties Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: 1.3.16 Chris@18: 1.3.1 Chris@18: Chris@18: Chris@18: stable Chris@18: stable Chris@18: Chris@18: 2015-04-14 Chris@18: New BSD License Chris@18: Chris@18: * Fix Bug #20514: invalid package.xml; not installable with pyrus [mrook] Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: 1.3.15 Chris@18: 1.3.1 Chris@18: Chris@18: Chris@18: stable Chris@18: stable Chris@18: Chris@18: 2015-03-05 Chris@18: New BSD License Chris@18: Chris@18: * Fixes composer.json parse error Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: 1.3.14 Chris@18: 1.3.1 Chris@18: Chris@18: Chris@18: stable Chris@18: stable Chris@18: Chris@18: 2015-02-26 Chris@18: New BSD License Chris@18: Chris@18: * Fix Bug #18505: Possible incorrect handling of file names in TAR [mrook] Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: 1.3.13 Chris@18: 1.3.1 Chris@18: Chris@18: Chris@18: stable Chris@18: stable Chris@18: Chris@18: 2014-09-02 Chris@18: New BSD Chris@18: License Chris@18: Chris@18: * Fix Bug #20382: gzopen fix [mrook] Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: 1.3.12 Chris@18: 1.3.1 Chris@18: Chris@18: Chris@18: stable Chris@18: stable Chris@18: Chris@18: 2014-08-04 Chris@18: New BSD Chris@18: License Chris@18: Chris@18: * Fix Bug #19964: Memory leaking in Archive_Tar [mrook] Chris@18: * Fix Bug #20246: Broken with php 5.5.9 [mrook] Chris@18: * Fix Bug #20275: "pax_global_header" looks like a regular file Chris@18: * [mrook] Chris@18: * Implement Feature #19827: pass filename to _addFile function - downstream Chris@18: * patch [mrook] Chris@18: * Implement Feature #20132: Add custom mode/uid/gid to addString() [mrook] Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: 1.3.11 Chris@18: 1.3.1 Chris@18: Chris@18: Chris@18: stable Chris@18: stable Chris@18: Chris@18: 2013-02-09 Chris@18: New BSD Chris@18: License Chris@18: Chris@18: * Fix Bug #19746: Broken with PHP 5.5 [mrook] Chris@18: * Implement Feature #11258: Custom date/time in files added on-the-fly Chris@18: * [mrook] Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: 1.3.10 Chris@18: 1.3.1 Chris@18: Chris@18: Chris@18: stable Chris@18: stable Chris@18: Chris@18: 2012-04-10 Chris@18: New BSD Chris@18: License Chris@18: Chris@18: * Fix Bug #13361: Unable to add() some files (ex. mp3) [mrook] Chris@18: * Fix Bug #19330: Class creates incorrect (non-readable) tar.gz file Chris@18: * [mrook] Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: 1.3.9 Chris@18: 1.3.1 Chris@18: Chris@18: Chris@18: stable Chris@18: stable Chris@18: Chris@18: 2012-02-27 Chris@18: New BSD License Chris@18: Chris@18: * Fix Bug #16759: No error thrown from missing PHP zlib functions [mrook] Chris@18: * Fix Bug #18877: Incorrect handling of backslashes in filenames on Linux [mrook] Chris@18: * Fix Bug #19085: Error while packaging [mrook] Chris@18: * Fix Bug #19289: Invalid tar file generated [mrook] Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: 1.3.8 Chris@18: 1.3.1 Chris@18: Chris@18: Chris@18: stable Chris@18: stable Chris@18: Chris@18: 2011-10-14 Chris@18: New BSD License Chris@18: Chris@18: * Fix Bug #17853: Test failure: dirtraversal.phpt [mrook] Chris@18: * Fix Bug #18512: dead links are not saved in tar file [mrook] Chris@18: * Fix Bug #18702: Unpacks incorrectly on long file names using header prefix [mrook] Chris@18: * Implement Feature #10145: Patch to return a Pear Error Object on failure [mrook] Chris@18: * Implement Feature #17491: Option to preserve permissions [mrook] Chris@18: * Implement Feature #17813: Prevent PHP notice when extracting corrupted archive [mrook] Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: 1.3.7 Chris@18: 1.3.1 Chris@18: Chris@18: Chris@18: stable Chris@18: stable Chris@18: Chris@18: 2010-04-26 Chris@18: New BSD License Chris@18: Chris@18: PEAR compatibility update Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: 1.3.6 Chris@18: 1.3.1 Chris@18: Chris@18: Chris@18: stable Chris@18: stable Chris@18: Chris@18: 2010-03-09 Chris@18: New BSD License Chris@18: Chris@18: * Fix Bug #16963: extractList can't extract zipped files from big tar [mrook] Chris@18: * Implement Feature #4013: Ignoring files and directories on creating an archive. [mrook] Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: 1.3.5 Chris@18: 1.3.1 Chris@18: Chris@18: Chris@18: stable Chris@18: stable Chris@18: Chris@18: 2009-12-31 Chris@18: New BSD License Chris@18: Chris@18: * Fix Bug #16958: Update 'compatible' tag in package.xml [mrook] Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: 1.3.4 Chris@18: 1.3.1 Chris@18: Chris@18: Chris@18: stable Chris@18: stable Chris@18: Chris@18: 2009-12-30 Chris@18: New BSD License Chris@18: Chris@18: * Fix Bug #11871: wrong result of ::listContent() if filename begins or ends with space [mrook] Chris@18: * Fix Bug #12462: invalid tar magic [mrook] Chris@18: * Fix Bug #13918: Long filenames may get up to 511 0x00 bytes appended on read [mrook] Chris@18: * Fix Bug #16202: Bogus modification times [mrook] Chris@18: * Implement Feature #16212: Die is not exception [mrook] Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: 1.3.3 Chris@18: 1.3.1 Chris@18: Chris@18: Chris@18: stable Chris@18: stable Chris@18: Chris@18: 2009-03-27 Chris@18: New BSD License Chris@18: Chris@18: Change the license to New BSD license Chris@18: Chris@18: minor bugfix release Chris@18: * fix Bug #9921 compression with bzip2 fails [cellog] Chris@18: * fix Bug #11594 _readLongHeader leaves 0 bytes in filename [jamessas] Chris@18: * fix Bug #11769 Incorrect symlink handing [fajar99] Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: 1.3.2 Chris@18: 1.3.1 Chris@18: Chris@18: Chris@18: stable Chris@18: stable Chris@18: Chris@18: 2007-01-03 Chris@18: PHP License Chris@18: Chris@18: Correct Bug #4016 Chris@18: Remove duplicate remove error display with '@' Chris@18: Correct Bug #3909 : Check existence of OS_WINDOWS constant Chris@18: Correct Bug #5452 fix for "lone zero block" when untarring packages Chris@18: Change filemode (from pear-core/Archive/Tar.php v.1.21) Chris@18: Correct Bug #6486 Can not extract symlinks Chris@18: Correct Bug #6933 Archive_Tar (Tar file management class) Directory traversal Chris@18: Correct Bug #8114 Files added on-the-fly not storing date Chris@18: Correct Bug #9352 Bug on _dirCheck function over nfs path Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: 1.3.1 Chris@18: 1.3.1 Chris@18: Chris@18: Chris@18: stable Chris@18: stable Chris@18: Chris@18: 2005-03-17 Chris@18: PHP License Chris@18: Chris@18: Correct Bug #3855 Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: 1.3.0 Chris@18: 1.3.0 Chris@18: Chris@18: Chris@18: stable Chris@18: stable Chris@18: Chris@18: 2005-03-06 Chris@18: PHP License Chris@18: Chris@18: Bugs correction (2475, 2488, 2135, 2176) Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: 1.2 Chris@18: 1.2 Chris@18: Chris@18: Chris@18: stable Chris@18: stable Chris@18: Chris@18: 2004-05-08 Chris@18: PHP License Chris@18: Chris@18: Add support for other separator than the space char and bug Chris@18: correction Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: 1.1 Chris@18: 1.1 Chris@18: Chris@18: Chris@18: stable Chris@18: stable Chris@18: Chris@18: 2003-05-28 Chris@18: PHP License Chris@18: Chris@18: * Add support for BZ2 compression Chris@18: * Add support for add and extract without using temporary files : methods addString() and extractInString() Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: 1.0 Chris@18: 1.0 Chris@18: Chris@18: Chris@18: stable Chris@18: stable Chris@18: Chris@18: 2003-01-24 Chris@18: PHP License Chris@18: Chris@18: Change status to stable Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: 0.10-b1 Chris@18: 0.10-b1 Chris@18: Chris@18: Chris@18: beta Chris@18: beta Chris@18: Chris@18: 2003-01-08 Chris@18: PHP License Chris@18: Chris@18: Add support for long filenames (greater than 99 characters) Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: 0.9 Chris@18: 0.9 Chris@18: Chris@18: Chris@18: stable Chris@18: stable Chris@18: Chris@18: 2002-05-27 Chris@18: PHP License Chris@18: Chris@18: Auto-detect gzip'ed files Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: 0.4 Chris@18: 0.4 Chris@18: Chris@18: Chris@18: stable Chris@18: stable Chris@18: Chris@18: 2002-05-20 Chris@18: PHP License Chris@18: Chris@18: Windows bugfix: use forward slashes inside archives Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: 0.2 Chris@18: 0.2 Chris@18: Chris@18: Chris@18: stable Chris@18: stable Chris@18: Chris@18: 2002-02-18 Chris@18: PHP License Chris@18: Chris@18: From initial commit to stable Chris@18: Chris@18: Chris@18: Chris@18: Chris@18: 0.3 Chris@18: 0.3 Chris@18: Chris@18: Chris@18: stable Chris@18: stable Chris@18: Chris@18: 2002-04-13 Chris@18: PHP License Chris@18: Chris@18: Windows bugfix: used wrong directory separators Chris@18: Chris@18: Chris@18: Chris@18: