phing-lib
[ class tree: phing-lib ] [ index: phing-lib ] [ all elements ]

Class: Archive_Zip

Source Location: /lib/Zip.php

Class Overview


Class for manipulating zip archive files


Author(s):

Version:

  • $Revision: 552 $

Variables

Methods



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,
  1. 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,
  1. 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,
  1. 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,
  1. 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