Advertisement
Guest User

Untitled

a guest
May 11th, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2. FUNCTION OUT($text, $nl = TRUE){
  3.   echo $text.($nl ? "\n" : '');
  4.   flush();
  5. }
  6. header('content-type:text/plain;charset=windows-1250');
  7. IF (isset($_GET['file'])){
  8.   $filename = $_GET['file'].'.zip';
  9.   IF (!file_exists($filename)) die ('not found!');
  10. } ELSE {
  11.   $files = scandir('.');
  12.   foreach ($files AS $val){
  13.     IF (SUBSTR($val, -4, 4) == '.zip'){
  14.       $filename = $val;
  15.       OUT("Found file: $val");
  16.       break;
  17.     }
  18.   }
  19.   IF (!isset($filename)) die ('no zip file found!');
  20. }
  21. $zip = zip_open($filename);
  22. IF ($zip) {
  23.   OUT('Unzipping');
  24.   OUT('---------');
  25.   WHILE ($zip_entry = zip_read($zip)) {
  26.     /*$name = zip_entry_name($zip_entry);
  27.     $name = str_replace('\\', '/', $name);
  28.     $path = explode('/', $name);
  29.     $folder = '';
  30.     for ($i = 0; $i < count($path)-1; $i++){
  31.       if ($i > 0) $folder .= '/';
  32.       echo "<<$folder>>";
  33.       $folder .= $path[$i];
  34.       if (!is_dir($folder)){
  35.         if (mkdir($folder)){
  36.           out ("Created directory: $folder");
  37.         } else {
  38.           out ("Failed to create directory: $folder");
  39.           continue;
  40.         }
  41.       }
  42.     }*/
  43.     $name = zip_entry_name($zip_entry);
  44.     IF (SUBSTR($name, -1, 1) == '/') {//dir
  45.       $name = SUBSTR($name, 0, strlen($name)-1);
  46.       OUT("Dir: $name");
  47.       mkdir($name);
  48.     } ELSE { //FILE
  49.       OUT("File: $name", FALSE);
  50.       $fp = fopen(zip_entry_name($zip_entry), "w");
  51.       IF (zip_entry_open($zip, $zip_entry, "r")) {
  52.         OUT('.', FALSE);
  53.         $buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
  54.         fwrite($fp,"$buf");
  55.         zip_entry_close($zip_entry);
  56.         fclose($fp);
  57.       }
  58.       OUT('');
  59.     }
  60.   }
  61.   zip_close($zip);
  62.   OUT('Unzip completed');
  63. } ELSE {
  64.   echo "unzip error";
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement