Make attention when using this function with apache & windows system. Windows file system use \ (backslash) instead of unix / (slash)
Use str_replace like this.
<?php
$zip = new ZipArchive;
if ($zip->open("file.zip")){
$path = getcwd() . "/dirToextract/";
$path = str_replace("\\","/",$path);
echo $path;
echo $zip->extractTo($path);
$zip->close();
echo 'Done.';
} else {
echo "Error";
}
?>
ZipArchive::extractTo
(No version information available, might be only in CVS)
ZipArchive::extractTo — Extract the archive contents
Описание
Extract the complete archive or the given files to the specified destination.
Список параметров
- destination
-
Location where to extract the files.
- entries
-
The entries to extract. It accepts either a single entry name or an array of names.
Возвращаемые значения
Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.
Примеры
This example opens a ZIP file archive, reads each file in the archive and prints out its contents. The test2.zip archive used in this example is one of the test archives in the ZZIPlib source distribution.
Пример #1 Extract all entries
<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
$zip->extractTo('/my/destination/dir/');
$zip->close();
echo 'ok';
} else {
echo 'failed';
}
?>
Пример #2 Extract only two entries
<?php
$zip = new ZipArchive;
$res = $zip->open('test_im.zip');
if ($res === TRUE) {
$zip->extractTo('/my/destination/dir/', array('pear_item.gif', 'testfromfile.php'));
$zip->close();
echo 'ok';
} else {
echo 'failed';
}
?>
ZipArchive::extractTo
Kaya
03-Oct-2008 01:36
03-Oct-2008 01:36
tBone
02-Jun-2008 05:03
02-Jun-2008 05:03
This function, at least from my experience, maintains/forces the directory structure within the ZIP file.
ie. if you have FOLDER1/File1.txt in the zip file and you use
$zip->extractTo('/extract', 'FOLDER1/File1.txt');
the location of the extracted file will be:
/extract/FOLDER1/File1.txt
