PHP Tutorial - ZIP File Manipulation
5 Pages
English

PHP Tutorial - ZIP File Manipulation

-

Downloading requires you to have access to the YouScribe library
Learn all about the services we offer

Description

PHP Tutorials ZIP File Written By Peter Kelly http://www.peter-kelly.me/ Manipulation In this tutorial we will look in detail into the ZIP functions included in PHP. So what is a ZIP Archive. DEFINITION The ZIP file format (.zip) is a data compression and archive format. A ZIP file contains one or more files that have been compressed to reduce file size, or stored as-is. Creating A ZIP File First we need some files or information we want to compress into the ZIP. Below are some examples of what I have included in this tutorial. These files should be placed in the directories stated. test_files/test_text.txt test_files/test_html.html test_document.doc You can download copies of the test files I have used by clicking on the link at the bottom of this tutorial. So now we have the files we are going to include in the archive, let’s go through the functions we will be using in this tutorial. OPEN open(string $filename [, int $flags]); Open is used to open a new ZIP Archive for reading, writing or modifying. ADDFROMSTRING addFromString(string $local_file_name, string $contents); addFromString is used to include data into the ZIP Archive that is not already located inside a file. So this function will create a file inside the archive and insert the string contents into that file. ADDFILE addFile(string $file_name_archive, string $file_name_local); addFile is used to include an already existing file or folder into the archive. Now we ...

Subjects

Informations

Published by
Reads 0
Language English
ZIP File PHP Tutorials Written By Peter Kelly http://www.peter-kelly.me/ Manipulation In this tutorial we will look in detail into the ZIP functions included in PHP. So what is a ZIP Archive.
DEFINITIONThe ZIP file format (.zip) is a data compression and archive format. A ZIP file contains one or more files that have been compressed to reduce file size, or stored as-is. Creating A ZIP File
First we need some files or information we want to compress into the ZIP. Below are some examples of what I have included in this tutorial. These files should be placed in the directories stated.
test_files/test_text.txt test_files/test_html.html test_document.doc You can download copies of the test files I have used by clicking on the link at the bottom of this tutorial.
So now wehave the files we are going to include in the archive, let’s go through the functions we will be using in this tutorial.
OPEN open(string $filename [, int $flags]); Open is used to open a new ZIP Archive for reading, writing or modifying. ADDFROMSTRING addFromString(string $local_file_name,string $contents); addFromString is used to include data into the ZIP Archive that is not already located inside a file. So this function will create a file inside the archive and insert the string contents into that file. ADDFILE addFile(string $file_name_archive,string $file_name_local); addFile is used to include an already existing file or folder into the archive.Now we will start by constructing the string variables.
$zip_archive = "new_zip_archive.zip"; $folder_local_location = "test_files/"; $folder_in_archive = "test_files/"; $file_local_location = "test_document.doc"; $file_in_archive = "test_document.doc";$zip_archiveis the string for setting the filename and location of the ZIP Archive you are creating. E.g “/zips/zipzippyzip.zip” but this archive must be in a directory that is writable or must already exist and have writable permissions.
Copyright ©2010 Peter Kelly (www.peter-kelly.me) Page 1
ZIP File PHP Tutorials Written By Peter Kelly http://www.peter-kelly.me/ Manipulation $folder_local_locationis the name and location of the folder we are including into the archive that already exists on the server.
$folder_in_archive isthe name and location of the folder we are adding into the archive this is useful as you can rename the folder once inside the ZIP Archive.
$file_local_location isthe name and location of the file we are including into the archive that already exists on the server.
$file_in_archiveis the name and location of the folder we are adding into the archive this is useful as you can rename the folder once inside the ZIP Archive.
Next we must create the ZIP Archive class and open it for creation.
$zip = new ZipArchive; $open = $zip->open($zip_archive, ZipArchive::CREATE);In the first line we are starting the ZipArchive class and assigning the class the $zip variable this is so we can implement it in other locations as you will see in line 2.
Now we must run an, IF command to check whether the $open has outputted TRUE successfully. This uses a comparison operator of === this means Identical where as == just means Equal.For more information about operators visit the php.net website. http://www.php.net/manual/en/language.operators.php
if ($open === TRUE) {Once we have confirmed $open has been successful, we can commence with inserting items into the ZIP Archive. Using the commands we learnt previously.
$zip->addFromString('new_string_file.txt', 'This file has been created via PHP and will be put into the ZIP Archive.'); $zip->addFile($file_in_archive, $file_local_location); $zip->addFile($folder_in_archive, $folder_local_location); $zip->close();After we have inserted the items we must close the archive this finishes the ZIP Archive but as afinal check we will see if the ZIP Archive actually exists in the location specified at the start and output the appropriate response.
if(file_exists($zip_archive)){  echo"Created Archive."; }else{  echo"Error: Archive Does Not Exist."; }
Copyright ©2010 Peter Kelly (www.peter-kelly.me) Page 2
ZIP File PHP Tutorials Written By Peter Kelly http://www.peter-kelly.me/ Manipulation And finally the last bit of the code remember the if($open === TRUE){ well we must put the closing bracket and what happens if it doesn’t equal true.} else {  echo"Unknown Error."; }Now we have completed the tutorial below is the finished product. <?php $zip_archive = "new_zip_archive.zip"; $folder_local_location = "test_files/"; $folder_in_archive = "test_files/"; $file_local_location = "test_document.doc"; $file_in_archive = "test_document.doc"; $zip = new ZipArchive; $open = $zip->open($zip_archive, ZipArchive::CREATE); if ($open === TRUE) {  $zip->addFromString('new_string_file.txt','This file has been created via PHP and will be put into the ZIP Archive.');  $zip->addFile($file_in_archive,$file_local_location);  $zip->addFile($folder_in_archive,$folder_local_location);  $zip->close();  if(file_exists($zip_archive)){  echo"Created Archive.";  }else{  echo"Error: Archive Does Not Exist.";  } } else {  echo"Unknown Error."; } ?>Well now you’ve got through the difficult part of creating and inserting the items into a ZIP Archive. We need to be able to get the items out again. This is where the next part of the tutorial kicks in.
Copyright ©2010 Peter Kelly (www.peter-kelly.me) Page 3
ZIP File Manipulation Extracting A ZIP File
To extract a ZIP we must first set a few string settings.
PHP Tutorials Written By Peter Kelly http://www.peter-kelly.me/
$zip_archive = "new_zip_archive.zip"; $extract_location = "new_zip_archive_extract/";$zip_archiveis the location and name of the archive we are going to extract in this case it is set to new_zip_archive.zip.
$extract_locationis the location of where we want the files in the archive to be extracted to.
Now we must use the same commands as used as when creating the archive by creating a new ZipArchive class and assigning it to $zip then opening it and assigning it to $extract although this time without any flags selected. We must then use an IF statement to see if $extract outputs TRUE.
$zip = new ZipArchive; $extract = $zip->open($name_of_zip); if ($extract === TRUE) {In this next section we will use a newcommand called extractto
EXTRACTTO extractTo(string $destination, mixed $entries);extractTo is used to export the files from within the ZIP Archive. The $entries can be written as just a single string or as an array. This is used to remove just certain files from the archive.Now to use this function.
 $zip->extractTo($extract_location); $zip->close(); echo 'Successfully Extracted.';As again we have extracted the files using the extractTo function and then closed the ZIP Archive. We have then echoed the success message. Once we have done this we must finish off the IF statement we began previously. Although this time we will also output the error message if one is needed.
} else {  echo'Error: ' . $extract; }
Copyright ©2010 Peter Kelly (www.peter-kelly.me) Page 4
ZIP File Manipulation So that’s it below is the overall code you should end up with.
PHP Tutorials Written By Peter Kelly http://www.peter-kelly.me/
<?php $zip_archive = "new_zip_archive.zip"; $extract_location = "new_zip_archive_extract/"; $zip = new ZipArchive; $extract = $zip->open($name_of_zip); if ($extract === TRUE) {  $zip->extractTo($extract_location);  $zip->close();  echo'Successfully Extracted.'; } else {  echo'Error: ' . $extract; } ?>Now you have learnt how tocreate and extract a ZIP Archive using PHP. Please use this as a guide to further your learning but mess about with the functions available at the php.net website and see what you can come up with.
http://uk3.php.net/manual/en/class.ziparchive.php
To download the test files listed above visit.
http://www.peter-kelly.me/downloads/zip_test_files.zip
If you have any further questions on this Tutorial or anything else about myself or the content displayed on my websitehttp://www.peter-kelly.meplease don’t hesitate to contact me by emailing me@peter-kelly.meor by visiting my website.
Thank You for Reading.
Copyright ©2010 Peter Kelly (www.peter-kelly.me) Page 5