(PHP 5 >= 5.2.0, PECL zip >= 1.1.0)
ZipArchive::open — Open a ZIP file archive
Opens a new zip archive for reading, writing or modifying.
filenameThe file name of the ZIP archive to open.
flagsThe mode to use to open the archive.
Error codes
       Returns TRUE on success or the error code.
       
          ZipArchive::ER_EXISTS
         
File already exists.
          ZipArchive::ER_INCONS
         
Zip archive inconsistent.
          ZipArchive::ER_INVAL
         
Invalid argument.
          ZipArchive::ER_MEMORY
         
Malloc failure.
          ZipArchive::ER_NOENT
         
No such file.
          ZipArchive::ER_NOZIP
         
Not a zip archive.
          ZipArchive::ER_OPEN
         
Can't open file.
          ZipArchive::ER_READ
         
Read error.
          ZipArchive::ER_SEEK
         
Seek error.
Example #1 Open and extract
<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
    echo 'ok';
    $zip->extractTo('test');
    $zip->close();
} else {
    echo 'failed, code:' . $res;
}
?>
Example #2 Create an archive
<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
    $zip->addFromString('test.txt', 'file content goes here');
    $zip->addFile('data.txt', 'entryname.txt');
    $zip->close();
    echo 'ok';
} else {
    echo 'failed';
}
?>