Extraction de zip (qui marche sur ftp et easyphp sans problèmes)

Soyez le premier à donner votre avis sur cette source.

Vue 7 495 fois - Téléchargée 373 fois

Description

Voila une source qui marche pour l'extraction de ZIP !!

Pour EasyPHP pensez a activer l'extension "php_zip" pour cela rien de plus simple,
faite clique droit sur le E dans la barre des taches pointer Configuration -> Extension PHP (ou Ctrl+X).
Cocher l'extension (tout en bas) et Appliquer.

Sinon le zip fournit est livré avec les fichier Index.php et pclzip.lib.php (qui lui n'est pas de moi mais de phpconcept (merci a eux)) et un repertoire "test" avec un zip pour les tests contenant le logo PHP codesource.

Source / Exemple :


<html>
<head>
<title>Votre_Titre</title> // a mofifier
</head>
</html>
<?

function fileext ($file) {
$p = pathinfo($file);
return $p['extension'];
}

$dir = "./test"; // Repertoire ou est situé le fichier a extraire

/*      Le vrai travail commence ici     */

include "pclzip.lib.php";

chdir($dir);

$basedir = getcwd();
$basedir = str_replace('\\','/',$basedir);     

if (is_dir($basedir)) { 

$parent = dirname($basedir);

$cur = $basedir;

while (substr($cur,0,1) == '/') {
        $cur = substr($cur,1,strlen($cur));
        $path .= '/'; }

$p_out = $dir;    // endroit ou sera extrait le ZIP (le même dans ce cas la)
while (strlen($cur) > 0) {
$k = strpos($cur,'/');
if (!strpos($cur,'/')) $k = strlen($cur);
$s = substr($cur,0,$k);
$cur = substr($cur,$k+1,strlen($cur));

}

echo "<center><div class=bigblock><div class=contents>";

$glob = array();$c = 0;
if ($dh = opendir(getcwd())) {
        while (($file = readdir($dh)) !== false) {
            if ($file != '..' && $file != '.') $glob[$c++] = $file;
        }
    closedir($dh);
    }

echo "</div><div class=filelist>";
echo "<div class=filedirtitle>ZIP files</div>";
$filez = $glob;
reset($filez);
if (sizeof($filez) > 0)
foreach ($filez as $filename) {
if (strtolower(fileext($filename)) == 'zip')
if (is_file($filename)) {
echo "&nbsp;&nbsp;<a href='?dir=$basedir&unzip=$filename&action=unzip' title='Extraire les fichiers'><font color=red>[Extraire]</font></a><br>";
}
}

}

$unzip = $_GET['unzip'];

if (is_file($unzip)) {       //décompression...

$zip = new PclZip($unzip);
if (($list = $zip->listContent()) == 0) {die("Error : ".$zip->errorInfo(true));  }

if ($_GET[action] == 'unzip') {
echo "<br><b>Début de la décompression...</b><br>";
$zip->extract('');
echo "Extraction réussie!<br>\n";
}

}
?>

Conclusion :


Voila maintenant a vous de tester et d'apporter votre contribution !!

Ah aufait, il y a des erreurs (uniquement dans EasyPHP), enfin j'arrive pas a les faire partir mais le script marche quand même heureusement lol !!

Donc si il y en a qui y arrive qu'ils veuillent bien mettre le code modifié.

Merci d'avance !!!

Et bon codage.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
592
Date d'inscription
samedi 19 janvier 2002
Statut
Membre
Dernière intervention
4 décembre 2008

Ouch , ça m'as fait mal au yeux de voir encore des <? :(
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
Hello,

mouais...je suis désolé, mais le seul intérêt de cette source, c'est pczlib.
Tu n'as fait que créer un vague petit exemple sur comment utiliser cette lib pour extraire une archive. Et ça tient en une ligne...
Messages postés
1123
Date d'inscription
mardi 8 janvier 2002
Statut
Modérateur
Dernière intervention
21 avril 2009
1
Sache que php5 inclut déjà ZipArchiver qui permet de faire tout ca très simplement (bien sur si l'extension est activée). Sache aussi que c'est la fin de php4 et que php6 va bientot sortir, alors passe au moin à la 5, ca t'évitera bien des galeres !

Sinon, tu es nouveau ? visite cette page, elle t'apprendra plein de bonnes choses :
http://www.phpcs.com/codes/REGLES-BONNE-PROGRAMMATION-PHP_24870.aspx

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.