| 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: 14 let
|
|||
0