1
0
mirror of https://github.com/splitbrain/php-archive.git synced 2025-07-10 09:26:32 +02:00
Files
php-archive/class-splitbrain.PHPArchive.Zip.html
2022-03-23 09:27:39 +00:00

1549 lines
38 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class splitbrain\PHPArchive\Zip</title>
<link rel="stylesheet" href="resources/style.css?c2f33731c1948fbed7c333554678bfa68d4817da">
</head>
<body>
<div id="left">
<div id="menu">
<a href="index.html" title="Overview"><span>Overview</span></a>
<div id="groups">
<h3>Namespaces</h3>
<ul>
<li class="active">
<a href="namespace-splitbrain.html">
splitbrain<span></span>
</a>
<ul>
<li class="active">
<a href="namespace-splitbrain.PHPArchive.html">
PHPArchive </a>
</li>
</ul></li>
</ul>
</div>
<hr>
<div id="elements">
<h3>Classes</h3>
<ul>
<li><a href="class-splitbrain.PHPArchive.Archive.html">Archive</a></li>
<li><a href="class-splitbrain.PHPArchive.FileInfo.html">FileInfo</a></li>
<li><a href="class-splitbrain.PHPArchive.Tar.html">Tar</a></li>
<li class="active"><a href="class-splitbrain.PHPArchive.Zip.html">Zip</a></li>
</ul>
<h3>Exceptions</h3>
<ul>
<li><a href="class-splitbrain.PHPArchive.ArchiveCorruptedException.html">ArchiveCorruptedException</a></li>
<li><a href="class-splitbrain.PHPArchive.ArchiveIllegalCompressionException.html">ArchiveIllegalCompressionException</a></li>
<li><a href="class-splitbrain.PHPArchive.ArchiveIOException.html">ArchiveIOException</a></li>
<li><a href="class-splitbrain.PHPArchive.FileInfoException.html">FileInfoException</a></li>
</ul>
</div>
</div>
</div>
<div id="splitter"></div>
<div id="right">
<div id="rightInner">
<form id="search">
<input type="hidden" name="cx" value="">
<input type="hidden" name="ie" value="UTF-8">
<input type="text" name="q" class="text" placeholder="Search">
</form>
<div id="navigation">
<ul>
<li>
<a href="index.html" title="Overview"><span>Overview</span></a>
</li>
<li>
<a href="namespace-splitbrain.PHPArchive.html" title="Summary of splitbrain\PHPArchive"><span>Namespace</span></a>
</li>
<li class="active">
<span>Class</span> </li>
</ul>
<ul>
</ul>
<ul>
</ul>
</div>
<div id="content" class="class">
<h1>Class Zip</h1>
<div class="description">
<p>Class Zip</p>
<p>Creates or extracts Zip archives</p>
<p>for specs see http://www.pkware.com/appnote</p>
</div>
<dl class="tree">
<dd style="padding-left:0px">
<a href="class-splitbrain.PHPArchive.Archive.html"><span>splitbrain\PHPArchive\Archive</span></a>
</dd>
<dd style="padding-left:30px">
<img src="resources/inherit.png" alt="Extended by">
<b><span>splitbrain\PHPArchive\Zip</span></b>
</dd>
</dl>
<div class="info">
<b>Namespace:</b> <a href="namespace-splitbrain.html">splitbrain</a>\<a href="namespace-splitbrain.PHPArchive.html">PHPArchive</a><br>
<b>Package:</b> splitbrain\PHPArchive<br>
<b>License:</b>
<a href="MIT">MIT</a><br>
<b>Author:</b>
Andreas Gohr <a href="&#x6d;&#x61;&#x69;&#x6c;&#x74;&#x6f;&#x3a;&#x61;&#x6e;&#x64;&#x69;&#x40;&#x73;&#x70;&#108;&#105;&#116;&#98;&#114;&#97;&#105;&#110;&#46;&#111;&#114;&#103;">&#x61;&#x6e;&#x64;&#x69;&#x40;&#x73;&#x70;&#108;&#105;&#116;&#98;&#114;&#97;&#105;&#110;&#46;&#111;&#114;&#103;</a><br>
<b>Located at</b> <a href="source-class-splitbrain.PHPArchive.Zip.html#5-1026" title="Go to source code">Zip.php</a>
<br>
</div>
<table class="summary methods" id="methods">
<caption>Methods summary</caption>
<tr data-order="setCompression" id="_setCompression">
<td class="attributes"><code>
public
</code>
</td>
<td class="name"><div>
<a class="anchor" href="#_setCompression">#</a>
<code><a href="source-class-splitbrain.PHPArchive.Zip.html#28-46" title="Go to source code">setCompression</a>( <span>integer <var>$level</var> = <span class="php-num">9</span></span>, <span>integer <var>$type</var> = Archive::COMPRESS_AUTO</span> )</code>
<div class="description short">
<p>Set the compression level.</p>
</div>
<div class="description detailed hidden">
<p>Set the compression level.</p>
<p>Compression Type is ignored for ZIP</p>
<p>You can call this function before adding each file to set differen compression levels
for each file.</p>
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$level</var></dt>
<dd>Compression level (0 to 9)</dd>
<dt><var>$type</var></dt>
<dd>Type of compression to use ignored for ZIP</dd>
</dl></div>
<h4>Throws</h4>
<div class="list">
<code><a href="class-splitbrain.PHPArchive.ArchiveIllegalCompressionException.html">splitbrain\PHPArchive\ArchiveIllegalCompressionException</a></code>
</div>
</div>
</div></td>
</tr>
<tr data-order="open" id="_open">
<td class="attributes"><code>
public
</code>
</td>
<td class="name"><div>
<a class="anchor" href="#_open">#</a>
<code><a href="source-class-splitbrain.PHPArchive.Zip.html#48-62" title="Go to source code">open</a>( <span>string <var>$file</var></span> )</code>
<div class="description short">
<p>Open an existing ZIP file for reading</p>
</div>
<div class="description detailed hidden">
<p>Open an existing ZIP file for reading</p>
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$file</var></dt>
<dd></dd>
</dl></div>
<h4>Throws</h4>
<div class="list">
<code><a href="class-splitbrain.PHPArchive.ArchiveIOException.html">splitbrain\PHPArchive\ArchiveIOException</a></code>
</div>
</div>
</div></td>
</tr>
<tr data-order="contents" id="_contents">
<td class="attributes"><code>
public
<code><a href="class-splitbrain.PHPArchive.FileInfo.html">splitbrain\PHPArchive\FileInfo</a>[]</code>
</code>
</td>
<td class="name"><div>
<a class="anchor" href="#_contents">#</a>
<code><a href="source-class-splitbrain.PHPArchive.Zip.html#64-84" title="Go to source code">contents</a>( )</code>
<div class="description short">
<p>Read the contents of a ZIP archive</p>
</div>
<div class="description detailed hidden">
<p>Read the contents of a ZIP archive</p>
<p>This function lists the files stored in the archive, and returns an indexed array of FileInfo objects</p>
<p>The archive is closed afer reading the contents, for API compatibility with TAR files
Reopen the file with open() again if you want to do additional operations</p>
<h4>Returns</h4>
<div class="list">
<code><a href="class-splitbrain.PHPArchive.FileInfo.html">splitbrain\PHPArchive\FileInfo</a>[]</code>
</div>
<h4>Throws</h4>
<div class="list">
<code><a href="class-splitbrain.PHPArchive.ArchiveIOException.html">splitbrain\PHPArchive\ArchiveIOException</a></code>
</div>
</div>
</div></td>
</tr>
<tr data-order="yieldContents" id="_yieldContents">
<td class="attributes"><code>
public
<code><a href="class-splitbrain.PHPArchive.FileInfo.html">splitbrain\PHPArchive\FileInfo</a>[]</code>
</code>
</td>
<td class="name"><div>
<a class="anchor" href="#_yieldContents">#</a>
<code><a href="source-class-splitbrain.PHPArchive.Zip.html#86-110" title="Go to source code">yieldContents</a>( )</code>
<div class="description short">
<p>Read the contents of a ZIP archive and return each entry using yield
for memory efficiency.</p>
</div>
<div class="description detailed hidden">
<p>Read the contents of a ZIP archive and return each entry using yield
for memory efficiency.</p>
<h4>Returns</h4>
<div class="list">
<code><a href="class-splitbrain.PHPArchive.FileInfo.html">splitbrain\PHPArchive\FileInfo</a>[]</code>
</div>
<h4>Throws</h4>
<div class="list">
<code><a href="class-splitbrain.PHPArchive.ArchiveIOException.html">splitbrain\PHPArchive\ArchiveIOException</a></code>
</div>
<h4>See</h4>
<div class="list">
<code><a href="class-splitbrain.PHPArchive.Zip.html#_contents">splitbrain\PHPArchive\Zip::contents()</a></code><br>
</div>
</div>
</div></td>
</tr>
<tr data-order="extract" id="_extract">
<td class="attributes"><code>
public
<code><a href="class-splitbrain.PHPArchive.FileInfo.html">splitbrain\PHPArchive\FileInfo</a>[]</code>
</code>
</td>
<td class="name"><div>
<a class="anchor" href="#_extract">#</a>
<code><a href="source-class-splitbrain.PHPArchive.Zip.html#112-261" title="Go to source code">extract</a>( <span>string <var>$outdir</var></span>, <span>integer|string <var>$strip</var> = <span class="php-quote">''</span></span>, <span>string <var>$exclude</var> = <span class="php-quote">''</span></span>, <span>string <var>$include</var> = <span class="php-quote">''</span></span> )</code>
<div class="description short">
<p>Extract an existing ZIP archive</p>
</div>
<div class="description detailed hidden">
<p>Extract an existing ZIP archive</p>
<p>The $strip parameter allows you to strip a certain number of path components from the filenames
found in the tar file, similar to the --strip-components feature of GNU tar. This is triggered when
an integer is passed as $strip.
Alternatively a fixed string prefix may be passed in $strip. If the filename matches this prefix,
the prefix will be stripped. It is recommended to give prefixes with a trailing slash.</p>
<p>By default this will extract all files found in the archive. You can restrict the output using the $include
and $exclude parameter. Both expect a full regular expression (including delimiters and modifiers). If
$include is set only files that match this expression will be extracted. Files that match the $exclude
expression will never be extracted. Both parameters can be used in combination. Expressions are matched against
stripped filenames as described above.</p>
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$outdir</var></dt>
<dd>the target directory for extracting</dd>
<dt><var>$strip</var></dt>
<dd>either the number of path components or a fixed prefix to strip</dd>
<dt><var>$exclude</var></dt>
<dd>a regular expression of files to exclude</dd>
<dt><var>$include</var></dt>
<dd>a regular expression of files to include</dd>
</dl></div>
<h4>Returns</h4>
<div class="list">
<code><a href="class-splitbrain.PHPArchive.FileInfo.html">splitbrain\PHPArchive\FileInfo</a>[]</code>
</div>
<h4>Throws</h4>
<div class="list">
<code><a href="class-splitbrain.PHPArchive.ArchiveIOException.html">splitbrain\PHPArchive\ArchiveIOException</a></code>
</div>
</div>
</div></td>
</tr>
<tr data-order="create" id="_create">
<td class="attributes"><code>
public
</code>
</td>
<td class="name"><div>
<a class="anchor" href="#_create">#</a>
<code><a href="source-class-splitbrain.PHPArchive.Zip.html#263-287" title="Go to source code">create</a>( <span>string <var>$file</var> = <span class="php-quote">''</span></span> )</code>
<div class="description short">
<p>Create a new ZIP file</p>
</div>
<div class="description detailed hidden">
<p>Create a new ZIP file</p>
<p>If $file is empty, the zip file will be created in memory</p>
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$file</var></dt>
<dd></dd>
</dl></div>
<h4>Throws</h4>
<div class="list">
<code><a href="class-splitbrain.PHPArchive.ArchiveIOException.html">splitbrain\PHPArchive\ArchiveIOException</a></code>
</div>
</div>
</div></td>
</tr>
<tr data-order="addFile" id="_addFile">
<td class="attributes"><code>
public
</code>
</td>
<td class="name"><div>
<a class="anchor" href="#_addFile">#</a>
<code><a href="source-class-splitbrain.PHPArchive.Zip.html#297-397" title="Go to source code">addFile</a>( <span>string <var>$file</var></span>, <span>string|<code><a href="class-splitbrain.PHPArchive.FileInfo.html">splitbrain\PHPArchive\FileInfo</a></code> <var>$fileinfo</var> = <span class="php-quote">''</span></span> )</code>
<div class="description short">
<p>Add a file to the current archive using an existing file in the filesystem</p>
</div>
<div class="description detailed hidden">
<p>Add a file to the current archive using an existing file in the filesystem</p>
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$file</var></dt>
<dd>path to the original file</dd>
<dt><var>$fileinfo</var></dt>
<dd>either the name to use in archive (string) or a FileInfo oject with all meta data, empty to take from original</dd>
</dl></div>
<h4>Throws</h4>
<div class="list">
<code><a href="class-splitbrain.PHPArchive.ArchiveIOException.html">splitbrain\PHPArchive\ArchiveIOException</a></code><br>
<code><a href="class-splitbrain.PHPArchive.FileInfoException.html">splitbrain\PHPArchive\FileInfoException</a></code>
</div>
</div>
</div></td>
</tr>
<tr data-order="addData" id="_addData">
<td class="attributes"><code>
public
</code>
</td>
<td class="name"><div>
<a class="anchor" href="#_addData">#</a>
<code><a href="source-class-splitbrain.PHPArchive.Zip.html#399-459" title="Go to source code">addData</a>( <span>string|<code><a href="class-splitbrain.PHPArchive.FileInfo.html">splitbrain\PHPArchive\FileInfo</a></code> <var>$fileinfo</var></span>, <span>string <var>$data</var></span> )</code>
<div class="description short">
<p>Add a file to the current Zip archive using the given $data as content</p>
</div>
<div class="description detailed hidden">
<p>Add a file to the current Zip archive using the given $data as content</p>
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$fileinfo</var></dt>
<dd>either the name to us in archive (string) or a FileInfo oject with all meta data</dd>
<dt><var>$data</var></dt>
<dd>binary content of the file to add</dd>
</dl></div>
<h4>Throws</h4>
<div class="list">
<code><a href="class-splitbrain.PHPArchive.ArchiveIOException.html">splitbrain\PHPArchive\ArchiveIOException</a></code>
</div>
</div>
</div></td>
</tr>
<tr data-order="close" id="_close">
<td class="attributes"><code>
public
</code>
</td>
<td class="name"><div>
<a class="anchor" href="#_close">#</a>
<code><a href="source-class-splitbrain.PHPArchive.Zip.html#461-504" title="Go to source code">close</a>( )</code>
<div class="description short">
<p>Add the closing footer to the archive if in write mode, close all file handles</p>
</div>
<div class="description detailed hidden">
<p>Add the closing footer to the archive if in write mode, close all file handles</p>
<p>After a call to this function no more data can be added to the archive, for
read access no reading is allowed anymore</p>
<h4>Throws</h4>
<div class="list">
<code><a href="class-splitbrain.PHPArchive.ArchiveIOException.html">splitbrain\PHPArchive\ArchiveIOException</a></code>
</div>
</div>
</div></td>
</tr>
<tr data-order="getArchive" id="_getArchive">
<td class="attributes"><code>
public
</code>
</td>
<td class="name"><div>
<a class="anchor" href="#_getArchive">#</a>
<code><a href="source-class-splitbrain.PHPArchive.Zip.html#506-517" title="Go to source code">getArchive</a>( )</code>
<div class="description short">
<p>Returns the created in-memory archive data</p>
</div>
<div class="description detailed hidden">
<p>Returns the created in-memory archive data</p>
<p>This implicitly calls close() on the Archive</p>
<h4>Throws</h4>
<div class="list">
<code><a href="class-splitbrain.PHPArchive.ArchiveIOException.html">splitbrain\PHPArchive\ArchiveIOException</a></code>
</div>
</div>
</div></td>
</tr>
<tr data-order="save" id="_save">
<td class="attributes"><code>
public
</code>
</td>
<td class="name"><div>
<a class="anchor" href="#_save">#</a>
<code><a href="source-class-splitbrain.PHPArchive.Zip.html#519-533" title="Go to source code">save</a>( <span> <var>$file</var></span> )</code>
<div class="description short">
<p>Save the created in-memory archive data</p>
</div>
<div class="description detailed hidden">
<p>Save the created in-memory archive data</p>
<p>Note: It's more memory effective to specify the filename in the create() function and
let the library work on the new file directly.</p>
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$file</var></dt>
<dd></dd>
</dl></div>
<h4>Throws</h4>
<div class="list">
<code><a href="class-splitbrain.PHPArchive.ArchiveIOException.html">splitbrain\PHPArchive\ArchiveIOException</a></code>
</div>
</div>
</div></td>
</tr>
<tr data-order="readCentralDir" id="_readCentralDir">
<td class="attributes"><code>
protected
array
</code>
</td>
<td class="name"><div>
<a class="anchor" href="#_readCentralDir">#</a>
<code><a href="source-class-splitbrain.PHPArchive.Zip.html#535-581" title="Go to source code">readCentralDir</a>( )</code>
<div class="description short">
<p>Read the central directory</p>
</div>
<div class="description detailed hidden">
<p>Read the central directory</p>
<p>This key-value list contains general information about the ZIP file</p>
<h4>Returns</h4>
<div class="list">
array
</div>
</div>
</div></td>
</tr>
<tr data-order="readCentralFileHeader" id="_readCentralFileHeader">
<td class="attributes"><code>
protected
array
</code>
</td>
<td class="name"><div>
<a class="anchor" href="#_readCentralFileHeader">#</a>
<code><a href="source-class-splitbrain.PHPArchive.Zip.html#583-627" title="Go to source code">readCentralFileHeader</a>( )</code>
<div class="description short">
<p>Read the next central file header</p>
</div>
<div class="description detailed hidden">
<p>Read the next central file header</p>
<p>Assumes the current file pointer is pointing at the right position</p>
<h4>Returns</h4>
<div class="list">
array
</div>
</div>
</div></td>
</tr>
<tr data-order="readFileHeader" id="_readFileHeader">
<td class="attributes"><code>
protected
array
</code>
</td>
<td class="name"><div>
<a class="anchor" href="#_readFileHeader">#</a>
<code><a href="source-class-splitbrain.PHPArchive.Zip.html#629-672" title="Go to source code">readFileHeader</a>( <span>array <var>$header</var></span> )</code>
<div class="description short">
<p>Reads the local file header</p>
</div>
<div class="description detailed hidden">
<p>Reads the local file header</p>
<p>This header precedes each individual file inside the zip file. Assumes the current file pointer is pointing at
the right position already. Enhances the given central header with the data found at the local header.</p>
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$header</var></dt>
<dd>the central file header read previously (see above)</dd>
</dl></div>
<h4>Returns</h4>
<div class="list">
array
</div>
</div>
</div></td>
</tr>
<tr data-order="parseExtra" id="_parseExtra">
<td class="attributes"><code>
protected
array
</code>
</td>
<td class="name"><div>
<a class="anchor" href="#_parseExtra">#</a>
<code><a href="source-class-splitbrain.PHPArchive.Zip.html#674-701" title="Go to source code">parseExtra</a>( <span>string <var>$header</var></span> )</code>
<div class="description short">
<p>Parse the extra headers into fields</p>
</div>
<div class="description detailed hidden">
<p>Parse the extra headers into fields</p>
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$header</var></dt>
<dd></dd>
</dl></div>
<h4>Returns</h4>
<div class="list">
array
</div>
</div>
</div></td>
</tr>
<tr data-order="header2fileinfo" id="_header2fileinfo">
<td class="attributes"><code>
protected
<code><a href="class-splitbrain.PHPArchive.FileInfo.html">splitbrain\PHPArchive\FileInfo</a></code>
</code>
</td>
<td class="name"><div>
<a class="anchor" href="#_header2fileinfo">#</a>
<code><a href="source-class-splitbrain.PHPArchive.Zip.html#703-731" title="Go to source code">header2fileinfo</a>( <span> <var>$header</var></span> )</code>
<div class="description short">
<p>Create fileinfo object from header data</p>
</div>
<div class="description detailed hidden">
<p>Create fileinfo object from header data</p>
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$header</var></dt>
<dd></dd>
</dl></div>
<h4>Returns</h4>
<div class="list">
<code><a href="class-splitbrain.PHPArchive.FileInfo.html">splitbrain\PHPArchive\FileInfo</a></code>
</div>
</div>
</div></td>
</tr>
<tr data-order="cpToUtf8" id="_cpToUtf8">
<td class="attributes"><code>
protected
string
</code>
</td>
<td class="name"><div>
<a class="anchor" href="#_cpToUtf8">#</a>
<code><a href="source-class-splitbrain.PHPArchive.Zip.html#733-754" title="Go to source code">cpToUtf8</a>( <span> <var>$string</var></span> )</code>
<div class="description short">
<p>Convert the given CP437 encoded string to UTF-8</p>
</div>
<div class="description detailed hidden">
<p>Convert the given CP437 encoded string to UTF-8</p>
<p>Tries iconv with the correct encoding first, falls back to mbstring with CP850 which is
similar enough. CP437 seems not to be available in mbstring. Lastly falls back to keeping the
string as is, which is still better than nothing.</p>
<p>On some systems iconv is available, but the codepage is not. We also check for that.</p>
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$string</var></dt>
<dd></dd>
</dl></div>
<h4>Returns</h4>
<div class="list">
string
</div>
</div>
</div></td>
</tr>
<tr data-order="utf8ToCp" id="_utf8ToCp">
<td class="attributes"><code>
protected
string
</code>
</td>
<td class="name"><div>
<a class="anchor" href="#_utf8ToCp">#</a>
<code><a href="source-class-splitbrain.PHPArchive.Zip.html#756-780" title="Go to source code">utf8ToCp</a>( <span> <var>$string</var></span> )</code>
<div class="description short">
<p>Convert the given UTF-8 encoded string to CP437</p>
</div>
<div class="description detailed hidden">
<p>Convert the given UTF-8 encoded string to CP437</p>
<p>Same caveats as for cpToUtf8() apply</p>
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$string</var></dt>
<dd></dd>
</dl></div>
<h4>Returns</h4>
<div class="list">
string
</div>
</div>
</div></td>
</tr>
<tr data-order="writebytes" id="_writebytes">
<td class="attributes"><code>
protected
integer
</code>
</td>
<td class="name"><div>
<a class="anchor" href="#_writebytes">#</a>
<code><a href="source-class-splitbrain.PHPArchive.Zip.html#783-802" title="Go to source code">writebytes</a>( <span>string <var>$data</var></span> )</code>
<div class="description short">
<p>Write to the open filepointer or memory</p>
</div>
<div class="description detailed hidden">
<p>Write to the open filepointer or memory</p>
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$data</var></dt>
<dd></dd>
</dl></div>
<h4>Returns</h4>
<div class="list">
integer<br>number of bytes written
</div>
<h4>Throws</h4>
<div class="list">
<code><a href="class-splitbrain.PHPArchive.ArchiveIOException.html">splitbrain\PHPArchive\ArchiveIOException</a></code>
</div>
</div>
</div></td>
</tr>
<tr data-order="writebytesAt" id="_writebytesAt">
<td class="attributes"><code>
protected
integer
</code>
</td>
<td class="name"><div>
<a class="anchor" href="#_writebytesAt">#</a>
<code><a href="source-class-splitbrain.PHPArchive.Zip.html#804-825" title="Go to source code">writebytesAt</a>( <span>string <var>$data</var></span>, <span>integer <var>$offset</var></span> )</code>
<div class="description short">
<p>Write to the open filepointer or memory at the specified offset</p>
</div>
<div class="description detailed hidden">
<p>Write to the open filepointer or memory at the specified offset</p>
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$data</var></dt>
<dd></dd>
<dt><var>$offset</var></dt>
<dd></dd>
</dl></div>
<h4>Returns</h4>
<div class="list">
integer<br>number of bytes written
</div>
<h4>Throws</h4>
<div class="list">
<code><a href="class-splitbrain.PHPArchive.ArchiveIOException.html">splitbrain\PHPArchive\ArchiveIOException</a></code>
</div>
</div>
</div></td>
</tr>
<tr data-order="dataOffset" id="_dataOffset">
<td class="attributes"><code>
protected
integer
</code>
</td>
<td class="name"><div>
<a class="anchor" href="#_dataOffset">#</a>
<code><a href="source-class-splitbrain.PHPArchive.Zip.html#827-840" title="Go to source code">dataOffset</a>( )</code>
<div class="description short">
<p>Current data pointer position</p>
</div>
<div class="description detailed hidden">
<p>Current data pointer position</p>
<h4>Returns</h4>
<div class="list">
integer
</div>
<h4>Fixme</h4>
<div class="list">
might need a -1<br>
</div>
</div>
</div></td>
</tr>
<tr data-order="makeDosTime" id="_makeDosTime">
<td class="attributes"><code>
protected
integer
</code>
</td>
<td class="name"><div>
<a class="anchor" href="#_makeDosTime">#</a>
<code><a href="source-class-splitbrain.PHPArchive.Zip.html#842-867" title="Go to source code">makeDosTime</a>( <span> <var>$time</var></span> )</code>
<div class="description short">
<p>Create a DOS timestamp from a UNIX timestamp</p>
</div>
<div class="description detailed hidden">
<p>Create a DOS timestamp from a UNIX timestamp</p>
<p>DOS timestamps start at 1980-01-01, earlier UNIX stamps will be set to this date</p>
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$time</var></dt>
<dd></dd>
</dl></div>
<h4>Returns</h4>
<div class="list">
integer
</div>
</div>
</div></td>
</tr>
<tr data-order="makeUnixTime" id="_makeUnixTime">
<td class="attributes"><code>
protected
integer
</code>
</td>
<td class="name"><div>
<a class="anchor" href="#_makeUnixTime">#</a>
<code><a href="source-class-splitbrain.PHPArchive.Zip.html#869-893" title="Go to source code">makeUnixTime</a>( <span> <var>$mdate</var> = <span class="php-keyword1">null</span></span>, <span> <var>$mtime</var> = <span class="php-keyword1">null</span></span> )</code>
<div class="description short">
<p>Create a UNIX timestamp from a DOS timestamp</p>
</div>
<div class="description detailed hidden">
<p>Create a UNIX timestamp from a DOS timestamp</p>
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$mdate</var></dt>
<dd></dd>
<dt><var>$mtime</var></dt>
<dd></dd>
</dl></div>
<h4>Returns</h4>
<div class="list">
integer
</div>
</div>
</div></td>
</tr>
<tr data-order="makeCentralFileRecord" id="_makeCentralFileRecord">
<td class="attributes"><code>
protected
string
</code>
</td>
<td class="name"><div>
<a class="anchor" href="#_makeCentralFileRecord">#</a>
<code><a href="source-class-splitbrain.PHPArchive.Zip.html#895-941" title="Go to source code">makeCentralFileRecord</a>( <span>integer <var>$offset</var></span>, <span>integer <var>$ts</var></span>, <span>integer <var>$crc</var></span>, <span>integer <var>$len</var></span>, <span>integer <var>$clen</var></span>, <span>string <var>$name</var></span>, <span>boolean|null <var>$comp</var> = <span class="php-keyword1">null</span></span> )</code>
<div class="description short">
<p>Returns a local file header for the given data</p>
</div>
<div class="description detailed hidden">
<p>Returns a local file header for the given data</p>
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$offset</var></dt>
<dd>location of the local header</dd>
<dt><var>$ts</var></dt>
<dd>unix timestamp</dd>
<dt><var>$crc</var></dt>
<dd>CRC32 checksum of the uncompressed data</dd>
<dt><var>$len</var></dt>
<dd>length of the uncompressed data</dd>
<dt><var>$clen</var></dt>
<dd>length of the compressed data</dd>
<dt><var>$name</var></dt>
<dd>file name</dd>
<dt><var>$comp</var></dt>
<dd>if compression is used, if null it's determined from $len != $clen</dd>
</dl></div>
<h4>Returns</h4>
<div class="list">
string
</div>
</div>
</div></td>
</tr>
<tr data-order="makeLocalFileHeader" id="_makeLocalFileHeader">
<td class="attributes"><code>
protected
string
</code>
</td>
<td class="name"><div>
<a class="anchor" href="#_makeLocalFileHeader">#</a>
<code><a href="source-class-splitbrain.PHPArchive.Zip.html#943-981" title="Go to source code">makeLocalFileHeader</a>( <span>integer <var>$ts</var></span>, <span>integer <var>$crc</var></span>, <span>integer <var>$len</var></span>, <span>integer <var>$clen</var></span>, <span>string <var>$name</var></span>, <span>boolean|null <var>$comp</var> = <span class="php-keyword1">null</span></span> )</code>
<div class="description short">
<p>Returns a local file header for the given data</p>
</div>
<div class="description detailed hidden">
<p>Returns a local file header for the given data</p>
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$ts</var></dt>
<dd>unix timestamp</dd>
<dt><var>$crc</var></dt>
<dd>CRC32 checksum of the uncompressed data</dd>
<dt><var>$len</var></dt>
<dd>length of the uncompressed data</dd>
<dt><var>$clen</var></dt>
<dd>length of the compressed data</dd>
<dt><var>$name</var></dt>
<dd>file name</dd>
<dt><var>$comp</var></dt>
<dd>if compression is used, if null it's determined from $len != $clen</dd>
</dl></div>
<h4>Returns</h4>
<div class="list">
string
</div>
</div>
</div></td>
</tr>
<tr data-order="makeCrcAndSize" id="_makeCrcAndSize">
<td class="attributes"><code>
protected
string
</code>
</td>
<td class="name"><div>
<a class="anchor" href="#_makeCrcAndSize">#</a>
<code><a href="source-class-splitbrain.PHPArchive.Zip.html#983-997" title="Go to source code">makeCrcAndSize</a>( <span>integer <var>$crc</var></span>, <span>integer <var>$len</var></span>, <span>integer <var>$clen</var></span> )</code>
<div class="description short">
<p>Returns only a part of the local file header containing the CRC, size and compressed size.
Used to update these fields for an already written header.</p>
</div>
<div class="description detailed hidden">
<p>Returns only a part of the local file header containing the CRC, size and compressed size.
Used to update these fields for an already written header.</p>
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$crc</var></dt>
<dd>CRC32 checksum of the uncompressed data</dd>
<dt><var>$len</var></dt>
<dd>length of the uncompressed data</dd>
<dt><var>$clen</var></dt>
<dd>length of the compressed data</dd>
</dl></div>
<h4>Returns</h4>
<div class="list">
string
</div>
</div>
</div></td>
</tr>
<tr data-order="encodeFilename" id="_encodeFilename">
<td class="attributes"><code>
protected
array($filename,
</code>
</td>
<td class="name"><div>
<a class="anchor" href="#_encodeFilename">#</a>
<code><a href="source-class-splitbrain.PHPArchive.Zip.html#999-1025" title="Go to source code">encodeFilename</a>( <span> <var>$original</var></span> )</code>
<div class="description short">
<p>Returns an allowed filename and an extra field header</p>
</div>
<div class="description detailed hidden">
<p>Returns an allowed filename and an extra field header</p>
<p>When encoding stuff outside the 7bit ASCII range it needs to be placed in a separate
extra field</p>
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$original</var></dt>
<dd></dd>
</dl></div>
<h4>Returns</h4>
<div class="list">
array($filename,<br>$filename, $extra)
</div>
</div>
</div></td>
</tr>
</table>
<table class="summary inherited">
<caption>Methods inherited from <a href="class-splitbrain.PHPArchive.Archive.html#methods">splitbrain\PHPArchive\Archive</a></caption>
<tr>
<td><code>
<a href="class-splitbrain.PHPArchive.Archive.html#_setCallback">setCallback()</a>
</code></td>
</tr>
</table>
<table class="summary constants" id="constants">
<caption>Constants summary</caption>
<tr data-order="LOCAL_FILE_HEADER_CRC_OFFSET" id="LOCAL_FILE_HEADER_CRC_OFFSET">
<td class="attributes"><code>integer</code></td>
<td class="name">
<code>
<a href="source-class-splitbrain.PHPArchive.Zip.html#18" title="Go to source code"><b>LOCAL_FILE_HEADER_CRC_OFFSET</b></a>
</code>
<div class="description short">
</div>
<div class="description detailed hidden">
</div>
</td>
<td class="value">
<div>
<a href="#LOCAL_FILE_HEADER_CRC_OFFSET" class="anchor">#</a>
<code><span class="php-num">14</span></code>
</div>
</td>
</tr>
</table>
<table class="summary inherited">
<caption>Constants inherited from <a href="class-splitbrain.PHPArchive.Archive.html#constants">splitbrain\PHPArchive\Archive</a></caption>
<tr>
<td><code>
<a href="class-splitbrain.PHPArchive.Archive.html#COMPRESS_AUTO"><b>COMPRESS_AUTO</b></a>,
<a href="class-splitbrain.PHPArchive.Archive.html#COMPRESS_BZIP"><b>COMPRESS_BZIP</b></a>,
<a href="class-splitbrain.PHPArchive.Archive.html#COMPRESS_GZIP"><b>COMPRESS_GZIP</b></a>,
<a href="class-splitbrain.PHPArchive.Archive.html#COMPRESS_NONE"><b>COMPRESS_NONE</b></a>
</code></td>
</tr>
</table>
<table class="summary properties" id="properties">
<caption>Properties summary</caption>
<tr data-order="file" id="$file">
<td class="attributes"><code>
protected
string
</code></td>
<td class="name">
<a href="source-class-splitbrain.PHPArchive.Zip.html#20" title="Go to source code"><var>$file</var></a>
<div class="description short">
</div>
<div class="description detailed hidden">
</div>
</td>
<td class="value">
<div>
<a href="#$file" class="anchor">#</a>
<code><span class="php-quote">''</span></code>
</div>
</td>
</tr>
<tr data-order="fh" id="$fh">
<td class="attributes"><code>
protected
</code></td>
<td class="name">
<a href="source-class-splitbrain.PHPArchive.Zip.html#21" title="Go to source code"><var>$fh</var></a>
<div class="description short">
</div>
<div class="description detailed hidden">
</div>
</td>
<td class="value">
<div>
<a href="#$fh" class="anchor">#</a>
<code></code>
</div>
</td>
</tr>
<tr data-order="memory" id="$memory">
<td class="attributes"><code>
protected
string
</code></td>
<td class="name">
<a href="source-class-splitbrain.PHPArchive.Zip.html#22" title="Go to source code"><var>$memory</var></a>
<div class="description short">
</div>
<div class="description detailed hidden">
</div>
</td>
<td class="value">
<div>
<a href="#$memory" class="anchor">#</a>
<code><span class="php-quote">''</span></code>
</div>
</td>
</tr>
<tr data-order="closed" id="$closed">
<td class="attributes"><code>
protected
boolean
</code></td>
<td class="name">
<a href="source-class-splitbrain.PHPArchive.Zip.html#23" title="Go to source code"><var>$closed</var></a>
<div class="description short">
</div>
<div class="description detailed hidden">
</div>
</td>
<td class="value">
<div>
<a href="#$closed" class="anchor">#</a>
<code><span class="php-keyword1">true</span></code>
</div>
</td>
</tr>
<tr data-order="writeaccess" id="$writeaccess">
<td class="attributes"><code>
protected
boolean
</code></td>
<td class="name">
<a href="source-class-splitbrain.PHPArchive.Zip.html#24" title="Go to source code"><var>$writeaccess</var></a>
<div class="description short">
</div>
<div class="description detailed hidden">
</div>
</td>
<td class="value">
<div>
<a href="#$writeaccess" class="anchor">#</a>
<code><span class="php-keyword1">false</span></code>
</div>
</td>
</tr>
<tr data-order="ctrl_dir" id="$ctrl_dir">
<td class="attributes"><code>
protected
</code></td>
<td class="name">
<a href="source-class-splitbrain.PHPArchive.Zip.html#25" title="Go to source code"><var>$ctrl_dir</var></a>
<div class="description short">
</div>
<div class="description detailed hidden">
</div>
</td>
<td class="value">
<div>
<a href="#$ctrl_dir" class="anchor">#</a>
<code></code>
</div>
</td>
</tr>
<tr data-order="complevel" id="$complevel">
<td class="attributes"><code>
protected
integer
</code></td>
<td class="name">
<a href="source-class-splitbrain.PHPArchive.Zip.html#26" title="Go to source code"><var>$complevel</var></a>
<div class="description short">
</div>
<div class="description detailed hidden">
</div>
</td>
<td class="value">
<div>
<a href="#$complevel" class="anchor">#</a>
<code><span class="php-num">9</span></code>
</div>
</td>
</tr>
</table>
<table class="summary inherited">
<caption>Properties inherited from <a href="class-splitbrain.PHPArchive.Archive.html#properties">splitbrain\PHPArchive\Archive</a></caption>
<tr>
<td><code>
<a href="class-splitbrain.PHPArchive.Archive.html#$callback"><var>$callback</var></a>
</code></td>
</tr>
</table>
</div>
<div id="footer">
API documentation generated by <a href="http://apigen.org">ApiGen</a>
</div>
</div>
</div>
<script src="resources/combined.js?58699d70ee1015ed63e509c64f4dd9d3b29ddbbe"></script>
<script src="elementlist.js?d1556c44b5531910445709dcbedf0d7a38d1a058"></script>
</body>
</html>