Bonjour
voila j'ai donc vu le une class zip mais il ne permet que de compresser 1 fichier
apres plusieurs recherches vaine
quelqu'un aurait un autre script ??
d'avance merci
Version imprimable
Bonjour
voila j'ai donc vu le une class zip mais il ne permet que de compresser 1 fichier
apres plusieurs recherches vaine
quelqu'un aurait un autre script ??
d'avance merci
C'est quoi ta demande? Compresser plusieurs fichiers dans une archive ZIP?
compresser un dossier qui contient des sous dossiers et des ti fichiers dedans
sur free est installé bz2 et zlib ya une préférence pour l'un ou l'autre ?
Regarde ce code, je l'ai écrit pour un ouvrage qui sortira (en principe) en janvier, il explique comment ajouter des fichiers à une archive ZIP.
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 <?php // On crée une instance de la classe ZipArchive $zip = new ZipArchive; // On crée une archive ZIP si elle n'existe pas (ZIPARCHIVE::CREATE) // mixed ZipArchive::open ( string filename [, int flags] ) if ($zip->open('./fichiers/exemple.zip', ZIPARCHIVE::CREATE) === TRUE) { // On y insère le fichier exemple.txt $zip->addFile('./fichiers/exemple.txt', 'exemple.txt'); // ainsi que le fichier exemple.bz2 // bool ZipArchive::addFile ( string filename [, string localname] ) $zip->addFile('./fichiers/exemple.bz2', 'exemple.bz2'); // Et on ferme le fichier $zip->close(); // Et voilà, c'est aussi simple que ça... echo 'ok'; } else { echo 'échec'; } ?>
bon il me dit que j'ai un probleme de parenthe sur
Code:if ($zip->open('./fichiers/exemple.zip', ZIPARCHIVE::CREATE) === TRUE) {
Il faudrait que tu sois plus précis. C'est quoi le problème: un message d'erreur? Si oui, poste le. Quel résultat obtiens-tu quand tu exécute le script? L'as-tu adapté à ton arborescence?
Code:
1
2
3
4
5
6
7
8
9
10
11
12 //Espace ZipArchive $zip = new ZipArchive(); $fileZip='EspaceClient/essai.zip'; if($zip->open($filezip,ZIPARCHIVE::CREATE)===TRUE){ $zip->addFile('doc/dossier.class.pdf', 'dossier.class.pdf'); $zip->close(); echo'ok'; }else{ echo'echec'; }
Citation:
Parse error: parse error, expecting `'('' in d:\projet\site web & intranet\karkam.fr\admin\siteweb\graphic.php on line 42
Au fait, c'est franchement plus simple de faire une tarball dans le cas de la compression d'un simple repertoire, dans un format a sources ouvertes donc compatible avec tout les winzips et co.
Il s'agit de :
tar cvjf NomArchive.tar.bz2 Dossier1 Fichier2 Dossier3 etc ...
oui j'ai bien demandé un script et je voudrais bien utilisé un script
parce que j'ai un probleme avec mon header et je voudrais le régler
et comme je vais utiliser un script pour le pdf et pour le zip
pour ce tar ??
j'ai essayer comment faut'il sy prendre ??
en l'incluant
??Code:
1
2 $$command="tar cvf site.zip Client/temp"; system($command);
j'ai ce dossier 'temp' a zipper et a envoyer en téléchargement
j'ai pas trouver trop de chose sur tar ( a part ds environnement linux)
je trime trop sur la comrpession
il aime pas ceCitation:
ZIP::CREATE
Déjà, tu as deux $ devant commande dans sa définition.
Ensuite, ce n'est pas ZIP::CREATE mais ZIPARCHIVE::CREATE
Enfin, si ce n'est déjà fait, exécute un phpinfo() sur le serveur pour t'assurer que l'extension ZIP est bien reconnue.
En fait, pour une documentation aussi complête que rébarbative : http://man.developpez.com/man1/tar.1.php
Néanmoins, la ligne de commande devrait fonctionner, tu peux ajouter un v pour verbose aux options, la tester en console sur le serveur, et tu préferera probablement l'executer dans des backtips ou avec shell_exec() car ainsi tu pourras acceder la sortie en valeur de retour au lieu de l'afficher directement comme avec system()
Sinon, en tant qu'algo de compression a sources ouvertes, tout les décompresseurs savent l'extraire.
Note que l'option j permet de faire un tarball (archive) avec bunzip2, qui offre entre autre, une meilleure compression pour le texte que gzip. Gzip qui est utilisable avec l'option z au lieu de j. Enfin, tu peux n'utiliser ni z ni j et faire une tarball avec des fichiers non-compressés. A toi de faire tes tests et de voir ce qui va le mieux, z sera plus rapide tandis que j compressera plus.
David : je donne une solution contraignante car je suis un très, très vilain troll. D'un autre coté je ne force personne à préférer forcer les visiteurs à l'usage d'un décompresseur à sources fermées, moi ;). Pense aux 99% de visiteurs : ils sont sous linux ! Serieusement : je trouve que cette solution est viable sur un serveur linux, moins serieusement : je tranchera la tête de ceux qui refusent l'imperialisme de tar, comme le suggère mon petit avatar.
ah oui mais si il faut passer par la
ça sera pas la premiere lecture indigeste...:roll:
ah les erreurs c parce que j'ai écris ça un peu vite....dsl
j'avais fait un phpinfo() dans mon 2nd post pour dire que les librairies sur le serveur free zlib et bz2 était enabled
Zlib est une extension pour faire des archives avec gzip en PHP.
De meme, bz2 sert a faire de la compression bz2 en PHP.
Zip est l'extension requise pour faire des archives WinZip (tm) en PHP.
tar est une commande probablement disponnible sur tout les serveurs linux, elle requiert que gzip et bunzip2 soient installes aussi, c'est d'ailleurs probablement le cas. Il n'y a pas besoin d'extension PHP pour l'utiliser en CLI (Command Line Interface) : par exemple avec shell_exec().