<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>

<title>Code Igniter User Guide</title>

<style type='text/css' media='all'>@import url('../userguide.css');</style>
<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' />

<script type="text/javascript" src="../nav/nav.js"></script>
<script type="text/javascript" src="../nav/prototype.lite.js"></script>
<script type="text/javascript" src="../nav/moo.fx.js"></script>
<script type="text/javascript">
window.onload = function() {
	myHeight = new fx.Height('nav', {duration: 400});
	myHeight.hide();
}
</script>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv='expires' content='-1' />
<meta http-equiv= 'pragma' content='no-cache' />
<meta name='robots' content='all' />
<meta name='author' content='Rick Ellis' />
<meta name='description' content='Code Igniter User Guide' />

</head>
<body>

<!-- START NAVIGATION -->
<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div>
<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle.jpg" width="153" height="44" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div>
<div id="masthead">
<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
<tr>
<td><h1>Code Igniter User Guide Version 1.5.2</h1></td>
<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td>
</tr>
</table>
</div>
<!-- END NAVIGATION -->


<!-- START BREADCRUMB -->
<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
<tr>
<td id="breadcrumb">
<a href="http://www.codeigniter.com/">Code Igniter Home</a> &nbsp;&#8250;&nbsp;
<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp;
Zip Encoding Class
</td>
<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="www.codeigniter.com/user_guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td>
</tr>
</table>
<!-- END BREADCRUMB -->

<br clear="all" />


<!-- START CONTENT -->
<div id="content">


<h1>Zip Encoding Class</h1>
<p>Code Igniter's Zip Encoding Class classes permit you to create Zip archives. Archives can be downloaded to your
desktop or saved to a directory.</p>


<h2>Initializing the Class</h2>
<p>Like most other classes in Code Igniter, the Zip class is initialized in your controller using the <dfn>$this->load->library</dfn> function:</p>

<code>$this->load->library('zip');</code>
<p>Once loaded, the Zip library object will be available using: <dfn>$this->zip</dfn></p>


<h2>Usage Example</h2>

<p>This example demonstrates how to compress a file, save it to a folder on your server, and download it to your desktop.</p>

<code>
$name = 'mydata1.txt';<br />
$data = 'A Data String!';<br />
<br />
$this->zip->add_data($name, $data);<br />
<br />
// Write the zip file to a folder on your server. Name it "my_backup.zip"<br />
$this->zip->archive('/path/to/directory/my_backup.zip');
<br /><br />
 // Download the file to your desktop.  Name it "my_backup.zip"<br />
$this->zip->download('my_backup.zip');
</code>

<h1>Function Reference</h1>

<h2>$this->zip->add_data()</h2>

<p>Permits you to add data to the Zip archive. The first parameter must contain the name you would like
given to the file, the second parameter must contain the file data as a string:</p>

<code>
$name = 'my_bio.txt';<br />
$data = 'I was born in an elevator...';<br />
<br />
$this->zip->add_data($name, $data);
</code>

<p>You are allowed multiple calls to this function in order to
add several files to your archive.  Example:</p>

<code>
$name = 'mydata1.txt';<br />
$data = 'A Data String!';<br />
$this->zip->add_data($name, $data);<br />
<br />
$name = 'mydata2.txt';<br />
$data = 'Another Data String!';<br />
$this->zip->add_data($name, $data);<br />
</code>

<p>Or you can pass multiple files using an array:</p>

<code>
$data = array(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'mydata1.txt' => 'A Data String!',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'mydata2.txt' => 'Another Data String!'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br />
<br />
$this->zip->add_data($data);<br />
<br />
$this->zip->download('my_backup.zip');
</code>

<p>If you would like your compressed data organized into sub-folders, include the path as part of the filename:</p>

<code>
$name = '<kbd>personal/</kbd>my_bio.txt';<br />
$data = 'I was born in an elevator...';<br />
<br />
$this->zip->add_data($name, $data);
</code>

<p>The above example will place <dfn>my_bio.txt</dfn> inside a folder called <kbd>personal</kbd>.</p>


<h2>$this->zip->add_dir()</h2>

<p>Permits you to add a directory.  Usually this function is unnecessary since you can place your data into folders when
using <dfn>$this->zip->add_data()</dfn>, but if you would like to create an empty folder you can do so.  Example:</p>

<code>$this->zip->add_dir('myfolder'); // Creates a folder called "myfolder"</code>



<h2>$this->zip->read_file()</h2>

<p>Permits you to compress a file that already exists somewhere on your server.  Supply a file path and the zip class will
read it and add it to the archive:</p>

<code>
$path = '/path/to/photo.jpg';<br /><br />
$this->zip->read_file($path);
<br /><br />
 // Download the file to your desktop.  Name it "my_backup.zip"<br />
$this->zip->download('my_backup.zip');
</code>

<p>If you would like the Zip archive to maintain the directory structure the file is in, pass <kbd>TRUE</kbd> (boolean) in the
second parameter.  Example:


<code>
$path = '/path/to/photo.jpg';<br /><br />
$this->zip->read_file($path, <kbd>TRUE</kbd>);
<br /><br />
 // Download the file to your desktop.  Name it "my_backup.zip"<br />
$this->zip->download('my_backup.zip');
</code>

<p>In the above example, <dfn>photo.jpg</dfn> will be placed inside two folders:  <kbd>path/to/</kbd></p>



<h2>$this->zip->read_dir()</h2>

<p>Permits you to compress a folder (and its contents) that already exists somewhere on your server.  Supply a file path to the 
directory and the zip class will recursively read it and recreate it as a Zip archive.  All files contained within the
supplied path will be encodes, as will any sub-folders contained within it.  Example:</p>

<code>
$path = '/path/to/your/directory/';<br /><br />
$this->zip->read_dir($path);
<br /><br />
 // Download the file to your desktop.  Name it "my_backup.zip"<br />
$this->zip->download('my_backup.zip');
</code>




<h2>$this->zip->archive()</h2>

<p>Writes the Zip-encoded file to a directory on your server.  Submit a valid server path ending in the file name.  Make sure the
directory is writable (666 or 777 is usually OK). Example:</p>

<code>$this->zip->archive('/path/to/folder/myarchive.zip'); // Creates a file named myarchive.zip</code>


<h2>$this->zip->download()</h2>

<p>Causes the Zip file to be downloaded to your server. The function must be passed the name you would like the zip file called.
Example:</p>

<code>$this->zip->download('latest_stuff.zip'); // File will be named "latest_stuff.zip"</code>

<p class="important"><strong>Note:</strong>&nbsp; Do not display any data in the controller in which you call this function since it sends various server headers
that cause the download to happen and the file to be treated as binary.</p>


<h2>$this->zip->get_zip()</h2>

<p>Returns the Zip-compressed file data.  Generally you will not need this function unless you want to do something unique with the data.
Example:</p>

<code>
$name = 'my_bio.txt';<br />
$data = 'I was born in an elevator...';<br />
<br />
$this->zip->add_data($name, $data);<br /><br />

$zip_file = $this->zip->get_zip();
</code>


<h2>$this->zip->clear_data()</h2>

<p>The Zip class caches your zip data so that it doesn't need to recompile the Zip archive for each function you use above.
If, however, you need to create multiple Zips, each with different data, you can clear the cache between calls. Example:</p>

<code>
$name = 'my_bio.txt';<br />
$data = 'I was born in an elevator...';<br />
<br />
$this->zip->add_data($name, $data);<br />
$zip_file = $this->zip->get_zip();<br />
<br />
<kbd>$this->zip->clear_data();</kbd>
<br /><br />

$name = 'photo.jpg';<br />
$this->zip->read_file("/path/to/photo.jpg"); // Read the file's contents<br />
<br /><br />
$this->zip->download('myphotos.zip');
</code>













</div>
<!-- END CONTENT -->


<div id="footer">
<p>
Previous Topic:&nbsp;&nbsp;<a href="validation.html">Validation Class</a>
&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
Next Topic:&nbsp;&nbsp;<a href="../helpers/array_helper.html">Array Helper</a>
<p>
<p><a href="http://www.codeigniter.com">Code Igniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 &nbsp;&middot;&nbsp; <a href="http://www.pmachine.com">pMachine, Inc.</a></p>
</div>

</body>
</html>