Ноя 01

php-med-trans-lightСлучается, что нужно распаковать залитый на веб-сервер по FTP архив, если делать это с десктопа, то процедура получается аналогичной заливке распакованных файлов. Чтобы решить эту проблему дарю вам этот PHP скрипт. Для его работы на сервере должен стоять unzip, и разрешено использование встроенной функции exec (скрипт это всё проверит).
Чтобы воспользоваться им, размещаем скрипт, например с именем unzip.php, в той же директории где расположен архив или даже несколько архивов

<?php
if(!function_exists('exec')) die('exec function is not available on this server');
if(!$unzip_command = exec('/usr/bin/which unzip')) die();
 
if(!$dir_handle = opendir(getcwd())) die ('Can\'t open dir');
while(false != ($files = readdir($dir_handle))){
    if($files != '.' && $files != '..'){
	if(preg_match('/.\.zip/',$files)){
          exec("$unzip_command $files",$output);
	  echo '<b>Unzipping ',$files,' </b><br>';
	  foreach($output as $unzipped_files)
	      echo "$unzipped_files",'<span style="color: green"> done!</span><br>';
        }
     }
}
 
?>

4 Responses to “PHP: Распаковка zip архивов на сервере”

  1. Илья Says:

    Добрый день!
    Подскажите плиз, как данный скрипт исполнять из корня сайта при условии, что архив будет в другой папке?

  2. admin Says:

    можно где-то в начале (главное перед вызовом opendir) добавить

    chdir(‘/path/to/dir’);

  3. toll Says:

    Спасибо автору за этот прекрасный скрипт. распаковал джумлу за 1 секунду. я день назад по фтп ее лил около 40 минут. очень удобно.

  4. ocean Says:

    ништяк работает спасибо автору, работает там где не пашет php unzipper

Оставить комментарий

preload preload preload
Точный переводчик онлайн с украинского в Киеве. | массаж киев, обстеження.