Autor | Zpráva | ||
---|---|---|---|
nethor Profil |
#1 · Zasláno: 7. 1. 2012, 14:53:36
Zdravím,
zipuji adresář pomocí zde uvedení třídy Zipuj : Rekurzivní zipování. To funguje. ale potřeboval bych zazipovat i základní adresář, který se zipuje. Tedy tak, aby na 1. úrovni byl 'zakladni_adresar' a ne rovnou soubory v něm obsažené. Třídu jsem upravil, adresář se v zipu vytvoří, ale soubory jsou vedle něj a ne v něm: Co je špatně? 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); $this -> zip -> addEmptyDir(basename($root)); // přidá základní adresář 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 (); } } |
||
Časová prodleva: 12 let
|
0