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

0/5 (3 avis)

Vue 7 757 fois - Téléchargée 392 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
cs_yoman64 Messages postés 592 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 4 décembre 2008
30 nov. 2007 à 02:18
Ouch , ça m'as fait mal au yeux de voir encore des <? :(
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
29 nov. 2007 à 22:33
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...
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
28 nov. 2007 à 23:54
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.