Web Developer On1x.com Игры как увлечение Видео–игры как хобби и увлечение. Новости игровой индустрии. Блог про видео–игры.
Как вы оцениваете время проведенное в игре?Dark Souls 2 видео игрового процессаDiablo 3 Reaper of Souls рецензия, стоит ли вернуться в игру

php zip распаковка архивов

После того как закончил писать установщик для 8cms, появилась необходимость в автоматической распаковке zip архива средствами php.
Яндекс не дал никаких внятных результатов по готовой функции, аля "простой unzip". Написал свою, встречайте.
Первый параметр - строка на zip файл. Второй параметр - папку в которую распаковывать. Если папки нет, метод сам ее создает. Всем распакованным файлам он применяет права доступа 0775.
php zip unpacker
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
function unzip($file,$dir='unzip/'){
    if(!file_exists($dir)){
        mkdir($dir,0777);
    }
    $zip_handle = zip_open($file);
    if (is_resource($zip_handle)) {
        while($zip_entry = zip_read($zip_handle)){
            if ($zip_entry) {
                $zip_name=zip_entry_name($zip_entry);
                $zip_size=zip_entry_filesize($zip_entry);
                if(($zip_size==0)&&($zip_name[strlen($zip_name)-1]=='/')){
                    mkdir($dir.$zip_name,0775);
                }
                else{
                    @zip_entry_open($zip_handle, $zip_entry, 'r');
                    $fp=@fopen($dir.$zip_name,'wb+');
                    @fwrite($fp,zip_entry_read($zip_entry, $zip_size),$zip_size);
                    @fclose($fp);
                    @chmod($dir.$zip_name,0775);
                    @zip_entry_close($zip_entry);
                }
            }
        }
        return true;
    }
    else{
    	zip_close($zip_handle);
        return false;
    }
}

Часто приходится вручную писать свое решение. Успехов в программировании на php.
Дата записи: 20.05.2010 15:37
Предыдущая тема: Chrome Notelist
Собственные проекты:
GameCommunity.ru, GameSocial.Net (TV), ART-Talk.ru, Дград.инфо
On1x blog
my ip