phing-lib

# Class: Archive_Zip Source Location: /lib/Zip.php
### Class Overview
Class for manipulating zip archive files #### Author(s): Vincent Blavet <vincent@blavet.net> #### Version: $Revision: 552 $ | ### Variables $_error_code $_error_string $_zipname $_zip_fd | ### Methods __construct add create delete duplicate errorCode errorInfo errorName extract listContent merge properties _add _addFile _addFileList _addList _checkFormat _check_parameters _closeFd _convertHeader2FileInfo _create _deleteByRule _dirCheck _duplicate _errorLog _errorReset _extractByRule _extractFile _extractFileAsString _list _merge _openFd _readCentralFileHeader _readEndCentralDir _readFileHeader _tool_CopyBlock _tool_PathInclusion _tool_PathReduction _tool_Rename _tool_TranslateWinPath _writeCentralFileHeader _writeCentralHeader _writeFileHeader
### Class Details [line 92] Class for manipulating zip archive files A class which provided common methods to manipulate ZIP formatted archive files. It provides creation, extraction, deletion and add features. #### Tags:
author: | Vincent Blavet <vincent@blavet.net>
version: | $Revision: 552 $
[ Top ] ### Class Variables #### $_error_code = 1 [line 111] #### Tags:
var: | last error code
Type: | int
[ Top ] #### $_error_string = '' [line 116] #### Tags:
var: | Last error description
Type: | string
[ Top ] #### $_zipname = '' [line 99] The filename of the zip archive. #### Tags:
var: | Name of the Zip file
Type: | string
[ Top ] #### $_zip_fd = 0 [line 106] File descriptor of the opened Zip file. #### Tags:
var: | Internal zip file descriptor
Type: | int
[ Top ] ### Class Methods ### constructor __construct [line 127]
`Archive_Zip __construct( string $p_zipname)`
Archive_Zip Class constructor. This flavour of the constructor only declare a new Archive_Zip object, identifying it by the name of the zip file. #### Tags:
access: | public
#### Parameters:
string | $p_zipname | The name of the zip archive to create
[ Top ] ### method add [line 235]
`mixed add( mixed $p_filelist, [mixed $p_params = 0])`
This method add files or directory in an existing Zip Archive. If the Zip Archive does not exist it is created. The files and directories to add are indicated in $p_filelist. When a directory is in the list, the directory and its content is added in the archive. The methods takes a variable list of parameters in $p_params. The supported parameters for this method are : 'add_path' : Add a path to the archived files. 'remove_path' : Remove the specified 'root' path of the archived files. 'remove_all_path' : Remove all the path of the archived files. 'no_compression' : The archived files will not be compressed. 'callback_pre_add' : A callback function that will be called before each entry archiving. 'callback_post_add' : A callback function that will be called after each entry archiving. #### Tags:
return: | An array of file description on success, on an unrecoverable failure, an error code is logged.
access: | public
#### Parameters:
mixed | $p_filelist | The list of the files or folders to add. It can be a string with filenames separated by a comma, or an array of filenames.
mixed | $p_params | An array of variable parameters and values.
[ Top ] ### method create [line 164]
`mixed create( mixed $p_filelist, [mixed $p_params = 0])`
This method creates a Zip Archive with the filename set with the constructor. The files and directories indicated in $p_filelist are added in the archive. When a directory is in the list, the directory and its content is added in the archive. The methods takes a variable list of parameters in $p_params. The supported parameters for this method are : 'add_path' : Add a path to the archived files. 'remove_path' : Remove the specified 'root' path of the archived files. 'remove_all_path' : Remove all the path of the archived files. 'no_compression' : The archived files will not be compressed. #### Tags:
return: | An array of file description on success, an error code on error
access: | public
#### Parameters:
mixed | $p_filelist | The list of the files or folders to add. It can be a string with filenames separated by a comma, or an array of filenames.
mixed | $p_params | An array of variable parameters and values.
[ Top ] ### method delete [line 449]
`mixed delete( mixed $p_params)`
This methods delete archive entries in the zip archive. Notice that at least one filtering rule (set by the variable parameter list) must be set. Also notice that if you delete a folder entry, only the folder entry is deleted, not all the files bellonging to this folder. The supported variable parameters for this method are : 'by_name' : It can be a string with file/dir names separated by ',', or an array of file/dir names to delete from the archive. 'by_index' : A string with range of indexes separated by ',', (sample "1,3-5,12"). 'by_ereg' : A regular expression (ereg) that must match the extracted filename. 'by_preg' : A regular expression (preg) that must match the extracted filename. #### Tags:
return: | An array of file description on success, on an unrecoverable failure, an error code is logged.
access: | public
#### Parameters:
mixed | $p_params | An array of variable parameters and values.
[ Top ] ### method duplicate [line 556]
`integer duplicate( mixed $p_archive)`
This method creates an archive by copying the content of an other one. If the archive already exist, it is replaced by the new one without any warning. #### Tags:
return: | 1 on success, 0 on failure.
access: | public
#### Parameters:
mixed | $p_archive | It can be a valid Archive_Zip object or the filename of a valid zip archive.
[ Top ] ### method errorCode [line 646]
`integer errorCode( )`
Method that gives the lastest error code. #### Tags:
return: | The error code value.
access: | public
[ Top ] ### method errorInfo [line 702]
`string errorInfo( [boolean $p_full = false])`
This method returns the description associated with the latest error. #### Tags:
return: | The error description.
access: | public
#### Parameters:
boolean | $p_full | If set to true gives the description with the error code, the name and the description. If set to false gives only the description and the error code.
[ Top ] ### method errorName [line 660]
`string errorName( [boolean $p_with_code = false])`
This method gives the latest error code name. #### Tags:
return: | The error name.
access: | public
#### Parameters:
boolean | $p_with_code | If true, gives the name and the int value.
[ Top ] ### method extract [line 386]
`mixed extract( [mixed $p_params = 0])`
This method extract the files and folders which are in the zip archive. It can extract all the archive or a part of the archive by using filter feature (extract by name, by index, by ereg, by preg). The extraction can occur in the current path or an other path. All the advanced features are activated by the use of variable parameters. The return value is an array of entry descriptions which gives information on extracted files (See listContent()). The method may return a success value (an array) even if some files are not correctly extracted (see the file status in listContent()). The supported variable parameters for this method are : 'add_path' : Path where the files and directories are to be extracted 'remove_path' : First part ('root' part) of the memorized path (if similar) to remove while extracting. 'remove_all_path' : Remove all the memorized path while extracting. 'extract_as_string' : 'set_chmod' : After the extraction of the file the indicated mode will be set. 'by_name' : It can be a string with file/dir names separated by ',', or an array of file/dir names to extract from the archive. 'by_index' : A string with range of indexes separated by ',', (sample "1,3-5,12"). 'by_ereg' : A regular expression (ereg) that must match the extracted filename. 'by_preg' : A regular expression (preg) that must match the extracted filename. 'callback_pre_extract' : A callback function that will be called before each entry extraction. 'callback_post_extract' : A callback function that will be called after each entry extraction. #### Tags:
return: | An array of file description on success, on an unrecoverable failure, an error code is logged.
access: | public
#### Parameters:
mixed | $p_params | An array of variable parameters and values.
[ Top ] ### method listContent [line 329]
`mixed listContent( )`
This method gives the names and properties of the files and directories which are present in the zip archive. The properties of each entries in the list are : filename : Name of the file. For create() or add() it's the filename given by the user. For an extract() it's the filename of the extracted file. stored_filename : Name of the file / directory stored in the archive. size : Size of the stored file. compressed_size : Size of the file's data compressed in the archive (without the zip headers overhead) mtime : Last known modification date of the file (UNIX timestamp) comment : Comment associated with the file folder : true | false (indicates if the entry is a folder) index : index of the file in the archive (-1 when not available) status : status of the action on the entry (depending of the action) : Values are : ok : OK ! filtered : the file/dir was not extracted (filtered by user) already_a_directory : the file can't be extracted because a directory with the same name already exists write_protected : the file can't be extracted because a file with the same name already exists and is write protected newer_exist : the file was not extracted because a newer file already exists path_creation_fail : the file is not extracted because the folder does not exists and can't be created write_error : the file was not extracted because there was a error while writing the file read_error : the file was not extracted because there was a error while reading the file invalid_header : the file was not extracted because of an archive format error (bad file header) Note that each time a method can continue operating when there is an error on a single file, the error is only logged in the file status. #### Tags:
return: | An array of file description on success, on an unrecoverable failure, an error code is logged.
access: | public
[ Top ] ### method merge [line 603]
`integer merge( mixed $p_archive_to_add)`
This method merge a valid zip archive at the end of the archive identified by the Archive_Zip object. If the archive ($this) does not exist, the merge becomes a duplicate. If the archive to add does not exist, the merge is a success. #### Tags:
return: | 1 on success, 0 on failure.
access: | public
#### Parameters:
mixed | $p_archive_to_add | It can be a valid Archive_Zip object or the filename of a valid zip archive.
[ Top ] ### method properties [line 501]
`mixed properties( mixed $p_params)`
This method gives the global properties of the archive. The properties are : nb : Number of files in the archive comment : Comment associated with the archive file status : not_exist, ok #### Tags:
return: | An array with the global properties or 0 on error.
access: | public
#### Parameters:
mixed | $p_params | {Description}
[ Top ] ### method _add [line 829]
`void _add( $p_list, &$p_result_list, &$p_params)`
Archive_Zip::_add() { Description } #### Parameters:
| $p_list |
| &$p_result_list |
| &$p_params |
[ Top ] ### method _addFile [line 1248]
`void _addFile( $p_filename, &$p_header, $p_add_dir, $p_remove_dir, $p_remove_all_dir, &$p_params)`
Archive_Zip::_addFile() { Description } #### Parameters:
| $p_filename |
| &$p_header |
| $p_add_dir |
| $p_remove_dir |
| $p_remove_all_dir |
| &$p_params |
[ Top ] ### method _addFileList [line 1137]
`void _addFileList( $p_list, &$p_result_list, $p_add_dir, $p_remove_dir, $p_remove_all_dir, &$p_params)`
Archive_Zip::_addFileList() { Description } #### Parameters:
| $p_list |
| &$p_result_list |
| $p_add_dir |
| $p_remove_dir |
| $p_remove_all_dir |
| &$p_params |
[ Top ] ### method _addList [line 1065]
`void _addList( $p_list, &$p_result_list, $p_add_dir, $p_remove_dir, $p_remove_all_dir, &$p_params)`
Archive_Zip::_addList() { Description } #### Parameters:
| $p_list |
| &$p_result_list |
| $p_add_dir |
| $p_remove_dir |
| $p_remove_all_dir |
| &$p_params |
[ Top ] ### method _checkFormat [line 741]
`void _checkFormat( [integer $p_level = 0])`
Archive_Zip::_checkFormat() { Description } #### Parameters:
integer | $p_level |
[ Top ] ### method _check_parameters [line 3224]
`void _check_parameters( &$p_params, $p_default, integer $p_error_code, string $p_error_string)`
Archive_Zip::_check_parameters() { Description } #### Parameters:
integer | $p_error_code |
string | $p_error_string |
| &$p_params |
| $p_default |
[ Top ] ### method _closeFd [line 1033]
`void _closeFd( )`
Archive_Zip::_closeFd() { Description } [ Top ] ### method _convertHeader2FileInfo [line 1702]
`void _convertHeader2FileInfo( $p_header, &$p_info)`
Archive_Zip::_convertHeader2FileInfo() { Description } #### Parameters:
| $p_header |
| &$p_info |
[ Top ] ### method _create [line 790]
`void _create( $p_list, &$p_result_list, &$p_params)`
Archive_Zip::_create() { Description } #### Parameters:
| $p_list |
| &$p_result_list |
| &$p_params |
[ Top ] ### method _deleteByRule [line 2642]
`void _deleteByRule( &$p_result_list, &$p_params)`
Archive_Zip::_deleteByRule() { Description } #### Parameters:
| &$p_result_list |
| &$p_params |
[ Top ] ### method _dirCheck [line 2935]
`void _dirCheck( $p_dir, [[type] $p_is_dir = false])`
Archive_Zip::_dirCheck() { Description } #### Parameters:
[type] | $p_is_dir |
| $p_dir |
[ Top ] ### method _duplicate [line 3165]
`void _duplicate( $p_archive_filename)`
Archive_Zip::_duplicate() { Description } #### Parameters:
| $p_archive_filename |
[ Top ] ### method _errorLog [line 3284]
`void _errorLog( [integer $p_error_code = 0], [string $p_error_string = ''])`
Archive_Zip::_errorLog() { Description } #### Parameters:
integer | $p_error_code |
string | $p_error_string |
[ Top ] ### method _errorReset [line 3302]
`void _errorReset( )`
Archive_Zip::_errorReset() { Description } [ Top ] ### method _extractByRule [line 1744]
`void _extractByRule( &$p_file_list, &$p_params)`
Archive_Zip::_extractByRule() { Description } #### Parameters:
| &$p_file_list |
| &$p_params |
[ Top ] ### method _extractFile [line 1979]
`void _extractFile( &$p_entry, $p_path, $p_remove_path, $p_remove_all_path, &$p_params)`
Archive_Zip::_extractFile() { Description } #### Parameters:
| &$p_entry |
| $p_path |
| $p_remove_path |
| $p_remove_all_path |
| &$p_params |
[ Top ] ### method _extractFileAsString [line 2230]
`void _extractFileAsString( &$p_entry, &$p_string)`
Archive_Zip::_extractFileAsString() { Description } #### Parameters:
| &$p_entry |
| &$p_string |
[ Top ] ### method _list [line 1623]
`void _list( &$p_list)`
Archive_Zip::_list() { Description } #### Parameters:
| &$p_list |
[ Top ] ### method _merge [line 2987]
`void _merge( &$p_archive_to_add)`
Archive_Zip::_merge() { Description } #### Parameters:
| &$p_archive_to_add |
[ Top ] ### method _openFd [line 996]
`void _openFd( $p_mode)`
Archive_Zip::_openFd() { Description } #### Parameters:
| $p_mode |
[ Top ] ### method _readCentralFileHeader [line 2402]
`void _readCentralFileHeader( &$p_header)`
Archive_Zip::_readCentralFileHeader() { Description } #### Parameters:
| &$p_header |
[ Top ] ### method _readEndCentralDir [line 2512]
`void _readEndCentralDir( &$p_central_dir)`
Archive_Zip::_readEndCentralDir() { Description } #### Parameters:
| &$p_central_dir |
[ Top ] ### method _readFileHeader [line 2293]
`void _readFileHeader( &$p_header)`
Archive_Zip::_readFileHeader() { Description } #### Parameters:
| &$p_header |
[ Top ] ### method _tool_CopyBlock [line 3459]
`void _tool_CopyBlock( $p_src, $p_dest, $p_size, [integer $p_mode = 0])`
_tool_CopyBlock() { Description } #### Parameters:
integer | $p_mode |
| $p_src |
| $p_dest |
| $p_size |
[ Top ] ### method _tool_PathInclusion [line 3383]
`void _tool_PathInclusion( $p_dir, $p_path)`
_tool_PathInclusion() { Description } #### Parameters:
| $p_dir |
| $p_path |
[ Top ] ### method _tool_PathReduction [line 3321]
`void _tool_PathReduction( $p_dir)`
_tool_PathReduction() { Description } #### Parameters:
| $p_dir |
[ Top ] ### method _tool_Rename [line 3531]
`void _tool_Rename( $p_src, $p_dest)`
_tool_Rename() { Description } #### Parameters:
| $p_src |
| $p_dest |
[ Top ] ### method _tool_TranslateWinPath [line 3570]
`void _tool_TranslateWinPath( $p_path, [[type] $p_remove_disk_letter = true])`
_tool_TranslateWinPath() { Description } #### Parameters:
[type] | $p_remove_disk_letter |
| $p_path |
[ Top ] ### method _writeCentralFileHeader [line 1536]
`void _writeCentralFileHeader( &$p_header)`
Archive_Zip::_writeCentralFileHeader() { Description } #### Parameters:
| &$p_header |
[ Top ] ### method _writeCentralHeader [line 1590]
`void _writeCentralHeader( $p_nb_entries, $p_size, $p_offset, $p_comment)`
Archive_Zip::_writeCentralHeader() { Description } #### Parameters:
| $p_nb_entries |
| $p_size |
| $p_offset |
| $p_comment |
[ Top ] ### method _writeFileHeader [line 1484]
`void _writeFileHeader( &$p_header)`
Archive_Zip::_writeFileHeader() { Description } #### Parameters:
| &$p_header |
[ Top ] Documentation generated on Mon, 19 Oct 2009 10:52:28 +0200 by phpDocumentor 1.4.3