Autor Zpráva
šoraj
Profil
Ahoj, měl bych dotaz ohledně zipování celé složky, byla zde zverejnena třída Zipuj (autor Alphard):
<?php
class Zipuj {

protected $zip;
public $jmeno_zipu;
public $root;

public function __construct ($root = ".", $jmeno_zipu = "zip.zip") {
$this -> root = $root;
$this -> jmeno_zipu = $jmeno_zipu;
$this -> zip = new ZipArchive();
$this -> zip -> open ($this -> jmeno_zipu, ZIPARCHIVE::CREATE);
self::nactiAdr ($this -> root);
self::uloz ();
}

public function nactiAdr ($cesta) {
$hn = scandir ($cesta);
foreach ($hn as $file)
{ if ($file == "." || $file == "..") continue;
if (is_dir ($cesta."/".$file)) {
$this -> zip -> addEmptyDir ($cesta."/".$file);
self::nactiAdr ($cesta."/".$file);
}
else
$this -> zip -> addFile ($cesta."/".$file, $cesta."/".$file); }
}
public function uloz () {
$this -> zip -> close ();
}
}

$zalohuj = new Zipuj();
?>

Tato class zazipuje celý zadaný adresář, ale také všechny nadřazené složky..nevěděl by někdo, jak zazipovat pouze zadaný adresář??ale cestu k němu samozřejmě musím...už to zkoumám dlouho, ale nějak na to nemohzu prijit...dekuji za odpověď!
S pozdravem šoraj
imploder
Profil
Tato class zazipuje celý zadaný adresář, ale také všechny nadřazené složky
Myslíš asi naopak podsložky.
šoraj
Profil
no on mi zazipuje i tu cestu ke slozce, kteou chci zazipovat, ale ja bych potreboval, abych mel zazipovanou jen tu zadanou slozku s jejimi podslozkami a soubory...predam mu cestu :/iuehfdiew/ojfoiwef/konecna a zazipuje se to presne takhle + jeste ty podslozky a adresare z adresare konecna. Ja bych potreboval zipnout jen ten adresar konecna!....
Alphard
Profil
šoraj
pro toto není vyladěná
je nutné z cesty oddělit zadané adresáře a přidávat je jen ke zdrojové cestě
není to zásadní problém, ale já jsem momentálně časově zaneprázdněn, jestli počkáte pár dní, tak to upravím
šoraj
Profil
jiste, pockam a rad, zatim to budu zkouset nejak upravit:)
Alphard
Profil
Dobrý den, jsem si vědom, že po měsící jste to asi vyřešil jinak, ale když jsem to slíbil...
snad to bude vyhovovat, je to úprava pouze několika proměnných, jen kdybych nezapomněl :-(
<?php
class Zipuj {

protected $zip;
public $jmeno_zipu;
public $root;

  public function __construct ($root = ".", $jmeno_zipu = "zip.zip") {
    $this -> root = $root;
    $this -> jmeno_zipu = $jmeno_zipu;
    $this -> zip = new ZipArchive();
    $this -> zip -> open ($this -> jmeno_zipu, ZIPARCHIVE::CREATE);
    self::nactiAdr ();
    self::uloz ();
  }

  public function nactiAdr ($cesta = "") {
    $hn = scandir ($this -> root.$cesta);
    foreach ($hn as $file)
       {  if ($file == "." || $file == "..") continue;
          if (is_dir ($this -> root.$cesta."/".$file)) {
              $this -> zip -> addEmptyDir ($cesta."/".$file);
              self::nactiAdr ($cesta."/".$file);
            }
           else
            $this -> zip -> addFile ($this -> root.$cesta."/".$file, $cesta."/".$file);  }
  }
  public function uloz () {
    $this -> zip -> close ();
  }
}

$zalohuj = new Zipuj("./test/test2/test3/test4/test6");
?>

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0