PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 1
450142079 Отправлено: 02 Мая, 2016 - 15:52:07 • Тема: Архивация директории • Форум: Работа с файловой системой и файлами

Ответов: 10
Просмотров: 12671
Зарегался, только для того, чтоб выложить данный код.
php архивация директорий с исключениями файлов и папок


CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php
  3. $zz=array();/*массив для путей к файлам*/
  4. $not=array();/*массив для исключений*/
  5.  
  6. /*Название архива*/
  7. $ZipName='test.zip';
  8. /*Исключения*/
  9. $not[count($not)]=$ZipName;
  10. $not[count($not)]='io.php';
  11. $not[count($not)]='admin';
  12.  
  13. wfold('');/*С какой папки тащим*/
  14.  
  15.  
  16. function wfold($url){
  17.  
  18.         global $zz;/*добавляем массивы в функцию*/
  19.         global $not;
  20.  
  21.         $mm = glob($url ."*");/*в массив список, что в папке*/
  22.         for($i=0;$i<count($mm);$i++){/*Идем по всему массиву*/
  23.  
  24.                 $nn=0;/*Счетчик исключений*/
  25.                 for($i2=0;$i2<count($not);$i2++){/*Есть ли он в исключении?*/
  26.                         if($mm[$i] == $not[$i2]){$nn=1;}
  27.                 }
  28.                 if($nn==0){
  29.                         if(is_dir($mm[$i])){/*Если это папка*/
  30.                                 wfold($mm[$i] . '/');/*Рекурсивно запускаем эту же функцию*/
  31.                         }else{/*это файл*/
  32.                                 $zz[count($zz)]=$mm[$i];/*добавляем в массив*/
  33.                         }
  34.                 }
  35.  
  36.         }
  37. }
  38.  
  39. $zip=new ZipArchive();/*Подключаем библиотеку архива*/
  40. if($zip->open($ZipName, ZipArchive::CREATE)!==TRUE){/*Удачное ли создание*/
  41.         exit('CreateZIP[X]');
  42. }
  43. for($i=0;$i<count($zz);$i++){/*Из массива в архив*/
  44.         $zip->addFile($zz[$i]);
  45. }
  46. /*Показ размерности и закрытие*/
  47. echo $ZipName.'[FileKol=' . $zip->numFiles . ';FileSize=';
  48. $zip->close();
  49. echo (filesize($ZipName))/1000000 . 'mb;]';
  50.  
  51. ?>
  52.  

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB