2010-05-10 3 views
1

Я создаю что-то вроде простого установщика \ setupper для моей CMS. Когда пользователь загружает .zip с моей CMS и распаковывает его в какую-то папку на своем php-сервере, он видит файл - install.php и zip-папку с именем - Contents.zip Мне нужна функция php для извлечения файлов из этого zip-файла Content.zip и удалять этот файл. (Если это возможно, я хочу предоставить разные права на файлы \ папки, извлеченные оттуда сразу после распаковки папки)Как распаковать папку и удалить zipped оригинал?

Как это сделать?

ответ

2

Вы можете использовать PHP ZipArchive library для вас.

также code example from the documentation вы можете пригодиться.

<?php 

$zip = new ZipArchive(); 
$filename = "./test112.zip"; 

if ($zip->open($filename, ZIPARCHIVE::CREATE)!==TRUE) { 
    exit("cannot open <$filename>\n"); 
} 

$zip->addFromString("testfilephp.txt" . time(), "#1 This is a test string added as testfilephp.txt.\n"); 
$zip->addFromString("testfilephp2.txt" . time(), "#2 This is a test string added as testfilephp2.txt.\n"); 
$zip->addFile($thisdir . "/too.php","/testfromfile.php"); 
echo "numfiles: " . $zip->numFiles . "\n"; 
echo "status:" . $zip->status . "\n"; 
$zip->close(); 
?> 

для изменения прав доступа к файлам можно использовать PHP builtin function chmod.

, например

chmod("/somedir/somefile", 0600); 

удалить файл, который вы можете использовать, php builtin unlink

, например,

unlink('test.html'); 
unlink('testdir'); 

Я бы настоятельно рекомендовал yuo пройти официальную документацию по PHP.

+0

является то, что «PHP ZipArchive library» является частью официального php 5.2 defalt apache php? – Rella

+0

и где вы удаляете этот zip-файл? – Rella

+0

@Ole yeah, ZipArchive поставляется с официальным дистрибутивом; однако он имеет внешнюю зависимость от http://www.zlib.net/ – phoenix24

Смежные вопросы