Autor Zpráva
Jiří Bednář
Profil
Ahoj,
rád bych do Full verze svého CMS dal možnost zálohovat data do zip archivu, ale nejak nemohu najit funkci na vytvoreni zip archivu.
Pomeze s timto probleme nekdo?
tiso
Profil
http://www.google.com/search?q=php+zip+archive
Jiří Bednář
Profil
Dik
Alphard
Profil
Jiří Bednář:
Chcete-li zipovat rekurzivně, tím myslím i zanořené adresáře, bude se vám třeba hodit již hotová třída.

PS: Jak děkujete tisovi, to vás samotného nenapadlo zeptat se Googlu?
Jiří Bednář
Profil
Alphard
Dik za tu tridu.
PS:
To sem udelal driv nez jsem zde psal, ale nenapadlo mne dat jeste na konec "archive" a to me vyhodil na zacatku odkaz na hotova reseni.
Jiří Bednář
Profil
Alphard
Tak ten odkaz vubec nepomohl, vubec nechapu co kam zadat.
popisu co potrebuju zapsat.

publikace/clanky/
publikace/stranky/
publikace/rubriky/
publikace/odkazy/
kernel/

zapsat jak slozku /publikace/, tak /clanky/, /stranky/,.... a ve co v nich je.
Alphard
Profil
Takže vše vnořené do adresáře publikace?
$zalohuj = new Zipuj("publikace/", "zaloha.zip");


Jinak napište, co to dělá, nebo nedělá. Mimo jiné musíte mít knihovnu zip atd., věštit neumín.
Jiří Bednář
Profil
Alphard
Knihovnu jsem si jako prvni overil :-)
Jiří Bednář
Profil
Alphard
Tak mne to vypise tento error:


Fatal error: Call to undefined method ZipArchive::addEmptyDir() in /home/free/ic.cz/s/scumo/root/www/folder/test.php on line 22
Alphard
Profil
Možná nízká verze

ZipArchive::open, který vám zřejmě funguje
(PHP 5 >= 5.2.0, PECL zip >= 1.1.0)

a ZipArchive::addEmptyDir
(PHP 5 >= 5.2.0, PECL zip >= 1.8.0)

podívejte se do phpinfo()
Jiří Bednář
Profil
Zatím jsem na ic.cz

PHP: PHP Version 5.2.0-8+etch10
bZip: 1.0.3, 15-Feb-2005

no, je to jasné, nízká verze.
Jiří Bednář
Profil
ZIP: 2.0.0
Libzip: 0.7.1
ZLib: 1.2.11/1.2.3
Alphard
Profil
To, co jste napsal, nevypadá nepoužitelně. PHP 5.2 je splněno. Mně to na ic.cz jde (sice jsem trochu bojoval s právy k souborům, ale "Call to undefined method ZipArchive::addEmptyDir()" se neukázalo a archiv se vytvořil správně).
Je mi líto, že vám to nefunguje, stejnou třídu jsem již odkazoval mnoha lidem a všem to šlo. V této chvíli nevím, co dál radit. Snad jen vrátit se k odkazku od tisa :-)
Já se budu určitě snažit tento problém vyřešit, nebo aspoň dopsat do FAQ poznámku o možných problémech, ale teď na to nemám čas.
Jiří Erhart
Profil *
Alpharde, momentálně mám asi podobný problém jako vy s právy k souborům a nevím jak to řešit. Skript mi hlásí:
Warning: ZipArchive::addFile() [function.ZipArchive-addFile]: SAFE MODE Restriction in effect. The script whose uid is 207882 is not allowed to access / owned by uid 0 in /home/free/ic.cz/g/gravitydefied/root/www/test/zip2.php on line 4
Mohl byste mi poradit?
Davex
Profil
Jiří Erhart
Skript se pravděpodobně snaží uložit archiv do adresáře, do kterého nemá povolen přístup.

Takto to funguje?
$zalohuj = new Zipuj(".", "zaloha.zip");
Jiří Erhart
Profil *
Problém je se safemodem, a na ICčku mi ho nevypnou, takže potřebuju najít cestu, jak ho obejít.
AM_
Profil
The script whose uid is 207882 is not allowed to access / owned by uid 0
Na linuxových systémech znamená "/" na začátku adresy kořenový adresář disku - to buď rád, že tě tam nepustí.
pokud máš třeba složku "zalohuj", přistupuj k ní přes cestu "zalohuj", ne "/zalohuj". Pokud chceš zálohovat celý web (tedy kořenovou složku webhostingu), zkus to přes "." - odkaz na aktuální adresář
Alphard
Profil
Jiří Erhart:
Jestli to nebude špatnou cestou, jak píše AM_. Na Linuxech značí / tzv. root. Problém je, že se většinou neshoduje s rootem webu (tam kde máte asi index). Takže např. při odkazování obrázků (css stylů a stránek obecně) na stránce vám funguje src="/image/foto.jpg", ale když to použijete jako cestu v PHP, ocitnete se někde úplně jinde, kde nemáte práva (a neměl byste je ani bez safe modu).

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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