Grow your CSS skills. Land your dream job.

Last updated on:

Unzip Files

<?php
$zip = zip_open("zip.zip");
if (is_resource($zip)) {
  while ($zip_entry = zip_read($zip)) {
    $fp = fopen("zip/".zip_entry_name($zip_entry), "w");
    if (zip_entry_open($zip, $zip_entry, "r")) {
      $buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
      fwrite($fp,"$buf");
      zip_entry_close($zip_entry);
      fclose($fp);
    }
  }
  zip_close($zip);
}
?>

Reference URL

Comments

  1. Permalink to comment#

    Thanks for the snippet! Awesome site. Very helpful.

  2. Wow, learn something new every day, never knew you could unzip files using PHP :) thanks for the snippet

  3. Prabhjot Singh
    Permalink to comment#

    Does this script work with simple PHP installed or any particular library or something needed with PHP ?

  4. linh
    Permalink to comment#

    i got problem with this message

    Fatal error: Call to undefined function zip_open() in /srv/www/vhosts/mysite.com/httpdocs/unzip.php on line 2

  5. Permalink to comment#

    Take it easy as:

    and it will unzip file on the server on same file path.

  6. Permalink to comment#

    If there are directories in the zip file, it will fail. An extra condition is necessary for properly extracting directories.

    $zh = zip_open('file.zip');
    while ($zip_entry = zip_read($zh)) {
    	$name = zip_entry_name($zip_entry);
    	if (substr($name, -1) == '/') {
    		mkdir($destination . $name);
    	} else {
    		$fh = fopen('zip/' . $name, 'w');
    		if (zip_entry_open($zh, $zip_entry, 'r')) {
    			$buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
    			fwrite($fh, $buf);
    			zip_entry_close($zip_entry);
    		}
    		fclose($fh);
    	}
    }
    zip_close($zh);
  7. I have came here first time, its an amazing website and i have bookmarked it especially the snippets area!
    I have a small question, mostly we do not find the direct links of .zip files, instead .rar files are very common

    Is there a way to UNRAR the .rar archive on your server?

    Will this work??

    $file="folder/$filename";
    $string="unrar e '$file'";
    exec($string);
    

Leave a Comment

Current day month ye@r *

*May or may not contain any actual "CSS" or "Tricks".