PHP ActiveX
PHP ActiveX
Unzip Some Files by Iterating over Entries
See more Zip Examples
Demonstrates how to unzip specific files by iterating over entries in a .zip.Chilkat PHP ActiveX Downloads
<?php
$success = 0;
// This requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
$zip = new COM("Chilkat.Zip");
// Open a .zip containing:
//
// a1.xml
// b1.xml
// c1.xml
// dir1/a2.xml
// dir1/c2.xml
// dir2/dir3/c3.xml
// We wish to unzip only a1.xml, b1.xml, and c1.xml
$success = $zip->OpenZip('qa_data/zips/xml_files.zip');
if ($success == 0) {
print $zip->LastErrorText . "\n";
exit;
}
$sbFilename = new COM("Chilkat.StringBuilder");
$entry = new COM("Chilkat.ZipEntry");
$numEntries = $zip->NumEntries;
$i = 0;
while ($i < $numEntries) {
$zip->EntryAt($i,$entry);
$entryFilePath = $entry->FileName;
print $entryFilePath . "\n";
if ($entry->IsDirectory == 0) {
$sbFilename->SetString($entryFilePath);
if ($sbFilename->Contains('/',0) == 0) {
// Does not contain "/"
// Unzip to the qa_output directory.
$success = $entry->Extract('qa_output');
if ($success == 0) {
print 'Failed to unzip ' . $entryFilePath . "\n";
}
else {
print 'Unzipped ' . $entryFilePath . "\n";
}
}
}
$i = $i + 1;
}
?>