21. září bude sraz! Od 18.00 v restauraci Tradice v Praze u Anděla
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:

0