📄 unzip.lib.php
字号:
<?PHP /* $Id: unzip.lib.php 8301 2006-01-17 17:03:02Z cybot_tm $ */ /** * ZIP file unpack classes. Contributed to the phpMyAdmin project. * * @category phpPublic * @package File-Formats-ZIP * @subpackage Unzip * @filesource unzip.lib.php * @version 1.0.1 * * @author Holger Boskugel <vbwebprofi@gmx.de> * @copyright Copyright 漏 2003, Holger Boskugel, Berlin, Germany * @license http://opensource.org/licenses/gpl-license.php GNU Public License * * @history * 2003-12-02 - HB : Patched : naming bug : Time/Size of file * Added : ZIP file comment * Added : Check BZIP2 support of PHP * 2003-11-29 - HB * Initial version */ /** * Unzip class, which retrieves entries from ZIP files. * * Supports only the compression modes * - 0 : Stored, * - 8 : Deflated and * - 12 : BZIP2 * * Based on :<BR> * <BR> * {@link http://www.pkware.com/products/enterprise/white_papers/appnote.html * * Official ZIP file format}<BR> * {@link http://msdn.microsoft.com/library/en-us/w98ddk/hh/w98ddk/storage_5l4m.asp * * Microsoft DOS date/time format} * * @category phpPublic * @package File-Formats-ZIP * @subpackage Unzip * @version 1.0.1 * @author Holger Boskugel <vbwebprofi@gmx.de> * @uses SimpleUnzipEntry * @example example.unzip.php Two examples */ class SimpleUnzip {// 2003-12-02 - HB > /** * Array to store file entries * * @var string * @access public * @see ReadFile() * @since 1.0.1 */ var $Comment = '';// 2003-12-02 - HB < /** * Array to store file entries * * @var array * @access public * @see ReadFile() * @since 1.0 */ var $Entries = array(); /** * Name of the ZIP file * * @var string * @access public * @see ReadFile() * @since 1.0 */ var $Name = ''; /** * Size of the ZIP file * * @var integer * @access public * @see ReadFile() * @since 1.0 */ var $Size = 0; /** * Time of the ZIP file (unix timestamp) * * @var integer * @access public * @see ReadFile() * @since 1.0 */ var $Time = 0; /** * Contructor of the class * * @param string File name * @return SimpleUnzip Instanced class * @access public * @uses SimpleUnzip::ReadFile() Opens file on new if specified * @since 1.0 */ function SimpleUnzip($in_FileName = '') { if ($in_FileName !== '') { SimpleUnzip::ReadFile($in_FileName); } } // end of the 'SimpleUnzip' constructor /** * Counts the entries * * @return integer Count of ZIP entries * @access public * @uses $Entries * @since 1.0 */ function Count() { return count($this->Entries); } // end of the 'Count()' method /** * Gets data of the specified ZIP entry * * @param integer Index of the ZIP entry * @return mixed Data for the ZIP entry * @uses SimpleUnzipEntry::$Data * @access public * @since 1.0 */ function GetData($in_Index) { return $this->Entries[$in_Index]->Data; } // end of the 'GetData()' method /** * Gets an entry of the ZIP file * * @param integer Index of the ZIP entry * @return SimpleUnzipEntry Entry of the ZIP file * @uses $Entries * @access public * @since 1.0 */ function GetEntry($in_Index) { return $this->Entries[$in_Index]; } // end of the 'GetEntry()' method /** * Gets error code for the specified ZIP entry * * @param integer Index of the ZIP entry * @return integer Error code for the ZIP entry * @uses SimpleUnzipEntry::$Error * @access public * @since 1.0 */ function GetError($in_Index) { return $this->Entries[$in_Index]->Error; } // end of the 'GetError()' method /** * Gets error message for the specified ZIP entry * * @param integer Index of the ZIP entry * @return string Error message for the ZIP entry * @uses SimpleUnzipEntry::$ErrorMsg * @access public * @since 1.0 */ function GetErrorMsg($in_Index) { return $this->Entries[$in_Index]->ErrorMsg; } // end of the 'GetErrorMsg()' method /** * Gets file name for the specified ZIP entry * * @param integer Index of the ZIP entry * @return string File name for the ZIP entry * @uses SimpleUnzipEntry::$Name * @access public * @since 1.0 */ function GetName($in_Index) { return $this->Entries[$in_Index]->Name; } // end of the 'GetName()' method /** * Gets path of the file for the specified ZIP entry * * @param integer Index of the ZIP entry * @return string Path of the file for the ZIP entry * @uses SimpleUnzipEntry::$Path * @access public * @since 1.0 */ function GetPath($in_Index) { return $this->Entries[$in_Index]->Path; } // end of the 'GetPath()' method /** * Gets file time for the specified ZIP entry * * @param integer Index of the ZIP entry * @return integer File time for the ZIP entry (unix timestamp) * @uses SimpleUnzipEntry::$Time * @access public * @since 1.0 */ function GetTime($in_Index) { return $this->Entries[$in_Index]->Time; } // end of the 'GetTime()' method /** * Reads ZIP file and extracts the entries * * @param string File name of the ZIP archive * @return array ZIP entry list (see also class variable {@link $Entries $Entries}) * @uses SimpleUnzipEntry For the entries * @access public * @since 1.0 */ function ReadFile($in_FileName) { $this->Entries = array(); // Get file parameters $this->Name = $in_FileName; $this->Time = filemtime($in_FileName); $this->Size = filesize($in_FileName); // Read file $oF = fopen($in_FileName, 'rb'); $vZ = fread($oF, $this->Size);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -