Bonjour , merci je recherche un script qui fasse ça.
merci.
Bonjour , merci je recherche un script qui fasse ça.
merci.
Un peu de recherche ?
http://julp.developpez.com/php/zip/
Quand j'utilise le script de désarchivage de php4 :
J'obtiens des erreurs :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 # Exemples d'utilisation # Extraction de l'ensemble des fichiers qui composent l'archive extractTo('archives.zip', '');
Warning: zip_read() expects parameter 1 to be resource, integer given in C:\Program Files\EasyPHP 3.0\www\test\zip.php on line 22
Warning: zip_close() expects parameter 1 to be resource, integer given in C:\Program Files\EasyPHP 3.0\www\test\zip.php on line 43
Indique le chemin complet vers ton fichier zip.
http://seabova.com/zip.php
/home/content/s/e/a/seabova/html/idxphotos.zip
Warning: fopen(/538368a.jpg) [function.fopen]: failed to open stream: Permission denied in /home/content/s/e/a/seabova/html/zip.php on line 34
Bonjour j'aimerais pouvoir à partir d'un script php être capable d'extraire une archive zip.
Voici le script :
Sur mon serveur local ca marche (windows xp avec easyphp) mais pas sur mon hébergeur .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59 <?php function mkdir_recursif($dir) { $parties = preg_split('#/' . preg_quote(DIRECTORY_SEPARATOR) . '#', $dir, -1, PREG_SPLIT_NO_EMPTY); $base = ''; foreach ($parties as $p) { if (!file_exists($base . $p)) { mkdir($base . $p); } $base .= $p . DIRECTORY_SEPARATOR; } } function extractTo($archive, $destination, $ecrase = FALSE, $fichiers = NULL) { if (($zip = zip_open($archive)) === FALSE) { die(var_dump($zip)); return FALSE; } if (!file_exists($destination)) { mkdir_recursif($destination); } while ($entree = zip_read($zip)) { $fichier = zip_entry_name($entree); if (is_array($fichiers) && !in_array($fichier, $fichiers)) { continue; } if (zip_entry_open($zip, $entree)) { $contenu = zip_entry_read($entree, zip_entry_filesize($entree)); zip_entry_close($entree); if ($ecrase !file_exists($destination . DIRECTORY_SEPARATOR . $fichier)) { if (strpos($fichier, '/') !== FALSE) { mkdir_recursif($destination . DIRECTORY_SEPARATOR . dirname($fichier)); } $fp = fopen($destination . DIRECTORY_SEPARATOR . $fichier, 'w'); fwrite($fp, $contenu); fclose($fp); } } else { zip_close($zip); return FALSE; } } zip_close($zip); return TRUE; } $path = '/home/content/s/e/a/seabova/html/idxphotos.zip'; echo $path; # Exemples d'utilisation # Extraction de l'ensemble des fichiers qui composent l'archive extractTo( $path, ''); /* $path = '/home/content/s/e/a/seabova/html/idxfullphotos.zip'; extractTo( $path, ''); */ ?>
zip.php est en mode 777 ainsi que les archives zip ainsi que les dossiers idxphotos et idxfullphotos donc je ne comprends pas.
merci de votre aide.
une petite modification :
changer
en
Code : Sélectionner tout - Visualiser dans une fenêtre à part function extractTo($archive, $destination, $ecrase = FALSE, $fichiers = NULL) {
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 function extractTo($archive, $destination, $ecrase = FALSE, $fichiers = NULL) { $destination = $_SERVER['DOCUMENT_ROOT'] .'/'. $destination;
Partager