php生成zip文件类实例
本文实例讲述了php生成zip文件类。分享给大家供大家参考。具体如下:
<?php
/*
By:MattFord
Purpose:Basicclasstocreatezipfiles
*/
classzipFile{
public$files=array();
public$settings=NULL;
public$fileInfo=array(
"name"=>"",
"numFiles"=>0,
"fullFilePath"=>""
);
private$fileHash="";
private$zip="";
publicfunction__construct($settings){
$this->zipFile($settings);
}
publicfunctionzipFile($settings){
$this->zip=newZipArchive();
$this->settings=newstdClass();
foreach($settingsas$k=>$v){
$this->settings->$k=$v;
}
}
publicfunctioncreate(){
$this->fileHash=md5(implode(",",$this->files));
$this->fileInfo["name"]=$this->fileHash.".zip";
$this->fileInfo["numFiles"]=count($this->files);
$this->fileInfo["fullFilePath"]=$this->settings->path.
"/".$this->fileInfo["name"];
if(file_exists($this->fileInfo["fullFilePath"])){
returnarray(
false,
"alreadycreated:".$this->fileInfo["fullFilePath"]
);
}
else{
$this->zip->open($this->fileInfo["fullFilePath"],ZIPARCHIVE::CREATE);
$this->addFiles();
$this->zip->close();
returnarray(
true,
"newfilecreated:".$this->fileInfo["fullFilePath"]
);
}
}
privatefunctionaddFiles(){
foreach($this->filesas$k){
$this->zip->addFile($k,basename($k));
}
}
}
$settings=array(
"path"=>dirname(__FILE__)
);
$zipFile=newzipFile($settings);
$zipFile->files=array(
"./images/navoff.jpg",
"./images/navon.jpg"
);
list($success,$error)=$zipFile->create();
if($success===true){
//success
}
else{
//errorbecause:$error
}
?>
希望本文所述对大家的php程序设计有所帮助。