A class for php to generate zip files
- /*
- By: Matt Ford
-
- Purpose: Basic class to create zipfiles
- */
-
-
-
- Class zipFile {
- Public $ files = array ();
- Public $ settings = NULL;
- Public $ fileInfo = array (
- "Name" => "",
- "NumFiles" => 0,
- "FullFilePath" => ""
- );
- Private $ fileHash = "";
- Private $ zip = "";
-
- Public function _ construct ($ settings ){
- $ This-> zipFile ($ settings );
- }
-
- Public function zipFile ($ settings ){
- $ This-> zip = new ZipArchive ();
- $ This-> settings = new stdClass ();
-
-
- Foreach ($ settings as $ k => $ v ){
- $ This-> settings-> $ k = $ v;
- }
- }
-
- Public function create (){
- $ 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"]) {
- Return array (
- False,
- "Already created:". $ this-> fileInfo ["fullFilePath"]
- );
- }
- Else {
- $ This-> zip-> open ($ this-> fileInfo ["fullFilePath"], ZIPARCHIVE: CREATE );
- $ This-> addFiles ();
- $ This-> zip-> close ();
- Return array (
- True,
- "New file created:". $ this-> fileInfo ["fullFilePath"]
- );
- }
- }
-
- Private function addFiles (){
- Foreach ($ this-> files as $ k ){
- $ This-> zip-> addFile ($ k, basename ($ k ));
- }
- }
- }
-
-
- $ Settings = array (
- "Path" => dirname (_ FILE __)
- );
-
- $ ZipFile = new zipFile ($ settings );
-
-
- $ ZipFile-> files = array (
- "./Images/navoff.jpg ",
- "./Images/navon.jpg"
- );
-
- List ($ success, $ error) = $ zipFile-> create ();
-
- If ($ success === true ){
- // Success
- }
- Else {
- // Error because: $ error
- }
- ?>
|
Php, zip