Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- FUNCTION OUT($text, $nl = TRUE){
- echo $text.($nl ? "\n" : '');
- flush();
- }
- header('content-type:text/plain;charset=windows-1250');
- IF (isset($_GET['file'])){
- $filename = $_GET['file'].'.zip';
- IF (!file_exists($filename)) die ('not found!');
- } ELSE {
- $files = scandir('.');
- foreach ($files AS $val){
- IF (SUBSTR($val, -4, 4) == '.zip'){
- $filename = $val;
- OUT("Found file: $val");
- break;
- }
- }
- IF (!isset($filename)) die ('no zip file found!');
- }
- $zip = zip_open($filename);
- IF ($zip) {
- OUT('Unzipping');
- OUT('---------');
- WHILE ($zip_entry = zip_read($zip)) {
- /*$name = zip_entry_name($zip_entry);
- $name = str_replace('\\', '/', $name);
- $path = explode('/', $name);
- $folder = '';
- for ($i = 0; $i < count($path)-1; $i++){
- if ($i > 0) $folder .= '/';
- echo "<<$folder>>";
- $folder .= $path[$i];
- if (!is_dir($folder)){
- if (mkdir($folder)){
- out ("Created directory: $folder");
- } else {
- out ("Failed to create directory: $folder");
- continue;
- }
- }
- }*/
- $name = zip_entry_name($zip_entry);
- IF (SUBSTR($name, -1, 1) == '/') {//dir
- $name = SUBSTR($name, 0, strlen($name)-1);
- OUT("Dir: $name");
- mkdir($name);
- } ELSE { //FILE
- OUT("File: $name", FALSE);
- $fp = fopen(zip_entry_name($zip_entry), "w");
- IF (zip_entry_open($zip, $zip_entry, "r")) {
- OUT('.', FALSE);
- $buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
- fwrite($fp,"$buf");
- zip_entry_close($zip_entry);
- fclose($fp);
- }
- OUT('');
- }
- }
- zip_close($zip);
- OUT('Unzip completed');
- } ELSE {
- echo "unzip error";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement