note 107026 deleted from function.ziparchive-addfile by danbrown
| From: | danbrown@php.net | Date: | Tue, 03 Jan 2012 21:50:26 +0000 |
| Subject: | note 107026 deleted from function.ziparchive-addfile by danbrown | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-185296@lists.php.net to get a copy of this message | ||
Note Submitter: griffith t at thesoftwarehouse dt com.au
----
Updated class and usage based on Peter at boring dot ch, with recursive but without full path in zip
file.
class Zipper extends ZipArchive {
var $folder;
function Zipper($folder = null){
if (empty($folder)) $folder = getcwd();
$this->folder = $folder;
}
public function addDir($path) {
$this->addEmptyDir(substr(str_replace($this->folder,"",$path),1));
$nodes = glob($path . '/*');
foreach ($nodes as $node) {
$newfilename = substr(str_replace($this->folder, "",$node),1);
if (is_dir($node)) {
$this->addDir($node);
} else if (is_file($node)) {
$this->addFile($node, $newfilename);
}
}
}
}
Usage:
$archive_folder = "data/exportfiles/737/html"; // the folder which you archivate
$filename = $archive_folder.'test.zip';
$zip = new Zipper($archive_folder);
if ($zip->open($filename,ZipArchive::CREATE) === TRUE) {
$zip->addDir($archive_folder);
$zip->close();
echo 'ok';
} else {
echo 'failed';
}