Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Архивация папки целиком
Форумы портала PHP.SU » » Операционная система и системные вызовы » Архивация папки целиком

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

1. destus - 21 Мая, 2011 - 20:03:13 - перейти к сообщению
Как можно сделать?

Есть код, но он архивирует через абсолютный путь. Как можно сделать чтобы в архиве была только 1 папка заархивированная?

PHP:
скопировать код в буфер обмена
  1.  
  2.  function rec_scan_dir_to_zip($dir, $zip, $fromname){
  3.            $dir = realpath ($dir . '/' ) . '/';
  4.   $h = opendir ($dir);
  5.   if (! $h) {
  6.       /*print 'cannot open:' . $dir ; */
  7.      return false;
  8.   }
  9.   while (($file = readdir ($h))!==false){
  10.     $fullname = $dir . $file;
  11.     if ($file == '..' || $file == '.')
  12.         continue;
  13.     if (! is_readable ($fullname) ) continue;
  14.     if (is_dir ($fullname)){
  15.       rec_scan_dir_to_zip ($fullname , $zip, $fromname . $file . '/');
  16.     }
  17.     else{
  18.                 if ($file<>'1.txt')
  19.                 {
  20.        $locfilename =  $fromname.$file;
  21.            $locfilename=iconv('windows-1251', 'cp866', $locfilename);
  22.         $zip->addFile($fullname, $locfilename);
  23.                 }
  24.     }// if file or dir
  25. }// while
  26. closedir ($h);
  27. }// if open dir  
  28.  

 

Powered by ExBB FM 1.0 RC1