IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo
Sommaire > Fichiers / Répertoires
        Lister un répertoire et ses sous répertoires
        Naviguer dans l'arborescence du serveur
        Faire un zip d'un dossier

rechercher
precedent    sommaire    suivant    telecharger


Auteur : Hell
Version : 11/01/2006
Lister un répertoire et ses sous répertoires
<?php

//permet de lister un répertoire + sous répertoires
function lister($chemin)
{
   echo '<u>Contenu du dossier '.$chemin.'</u><br><blockquote>';
   
   //nom du répertoire à lister
   $nom_repertoire = $chemin;

   //on ouvre un pointeur sur le repertoire
   $pointeur = opendir($nom_repertoire);

   //pour chaque fichier et dossier
   while ($fichier = readdir($pointeur))
   {
      //on ne traite pas les . et ..
      if(($fichier != '.') && ($fichier != '..'))
      {
         //si c'est un dossier, on le lit
         if (is_dir($nom_repertoire.'/'.$fichier))
         {
            echo '<blockquote>';   
            lister($nom_repertoire.'/'.$fichier);
            echo '</blockquote>';
         }
         else
         {
            //c'est un fichier, on l'affiche
            echo $fichier.'<br>';
         }
      }
   }
   echo '</blockquote><u>Fin du dossier '.$nom_repertoire.'</u><br>';

   //fermeture du pointeur
   closedir($pointeur);
}
?>

Auteur : Sub0
Version : 16/01/2006
Naviguer dans l'arborescence du serveur
Merci aux membres du forum pour m'avoir aider à réaliser ce formulaire.
<style type="text/css">
<!--
 body,.mybox {
  font-family:'Lucida console';
  font-size:12px;
  color:#000000;
  background:#DDDDDD;
 }
 .mybox {
  background:#FFFFFF;
  width:100px;
 }
-->
</style>
<?php

//==========================================================//
//  TAILLE DU DOSSIER (ET SOUS-DOSSIERS)
//==========================================================//
function dirsize($path,$recursive=true){
  $result=0;
  if(!@is_dir($path) || !@is_readable($path)) return -1;
  $fd=@dir($path); if(!$fd) return -1;
  $tmo=time();
  while($file=$fd->read()){
    if(substr($file,-1,1)!='.'){
      if(@is_dir($path.'/'.$file.'/'))
        $result+=$recursive?dirSize($path.'/'.$file.'/'):0;
      else $result+=filesize($path.'/'.$file);
    }
    if(time()-$tmo>=2){  // TimeOut de 2 secondes
      $fd->close();
      return -1;
    }
  }
  $fd->close();
  return $result;
}


//==========================================================//
//  UNITE DE LA TAILLE
//==========================================================//
function getfilesize($size){
  if(!isset($size) || $size<0) return 'not found';
  $units=array('',' Ko',' Mo',' Go',' To');
  for($i=0;$size>1024;$i++) $size/=1024; 
  return round($size,2).$units[$i];
}


//==========================================================//
//  TRAITEMENT DU POST
//==========================================================//
$lstd=Array();        // Tableau des dossiers
$lstf=Array();        // Tableau des fichiers
$lsts=Array();        // Tailles des fichiers 
$myd=@$_POST['myd'];  // Sélection du dossier
$myf=@$_POST['myf'];  // Sélection du(des) fichier(s)

if((substr($myd,-1,1)=='.')&&(substr($myd,-2,2)!='..')) $myd='';
@chdir($myd);
echo '<b>'.getcwd().'</b> ('.@getfilesize(dirsize(getcwd())).')<br/>';
if($handle=@opendir(getcwd()))
  while(($file=@readdir($handle))!==false)
    if((@is_dir($file))||($file=='..')){
      $lstd[]=getcwd().'/'.$file;
    }else{
      $lstf[]=$file;   
      $lsts[]=@getfilesize(filesize(getcwd().'/'.$file));
    }   
@closedir($handle);


//==========================================================//
//  FORMULAIRE HTML
//==========================================================//
echo '<form name="mybrowse" method="post">';


echo '<select name="myd" size="20" class="mybox" '.
     'onDblClick="mybrowse.submit();">';
if(strlen(getcwd())<4){
  if('A:\\'!=getcwd())
    echo '<option value="A:">A:</option>';
  for($x=2;$x<26;$x++){
    $unit=chr(65+$x).':';
    if(@is_dir($unit) && $unit.'\\'!=getcwd())
      echo '<option value="'.$unit.'">'.$unit.'</option>';
  }
}
for($x=0;$x<count($lstd);$x++)
  echo '<option value="'.$lstd[$x].'">'.basename($lstd[$x]).'</option>';
echo '</select>';


echo '<select name="myf[]" size="20" class="mybox" '.
     'style="width:300px;" multiple>';
for($x=0;$x<count($lstf);$x++)
  echo '<option value="'.$lstf[$x].'">'.$lstf[$x].' ('.$lsts[$x].')</option>';
echo '</select>';


echo '<br/>'.
     '<noscript>'.
     '<input type="submit" value=" LISTER " class="mybox"/>'.
     '</noscript>'.
     '</form>';


//==========================================================//
?>

Auteur : fouz
Version : 16/01/2006
Faire un zip d'un dossier
Fonction limitée niveau puissance, pas plus de 20 mo de fichiers.
require_once("zip.lib.php");       // librairie zip.lib, que l'on trouve avec phpmyadmin

$fichier_zip = "zip.zip";         // nom du fichier zip que l'on veut
$zip= new zipfile;
$path = "Compression";            // repertoire que l'on veut zipper

set_time_limit (1000);            // a parametrer selon vos souhaits

function zipDir($path,&$zip)
{
   
   if (!is_dir($path)) return;
   
   if (!($dh = @opendir($path))) {
      echo("<b>ERREUR: Une erreur s'est produite sur ".$path."</b><br />");
      return;
   }
   while ($file = readdir($dh)) {
      
      if ($file == "." || $file == "..") continue; // Throw the . and .. folders
      if (is_dir($path."/".$file)) { // Recursive call
         zipDir($path."/".$file,$zip,$i);   
      } elseif (is_file($path."/".$file)) { // If this is a file then add to the zip file
         
         $zip->addFile(file_get_contents($path."/".$file),$path."/".$file);
         //echo('fichier '.$path.'/'.$file.' ajouté<br>');
      }
      }
   }
}

zipDir($path,$zip);
$filezipped=$zip->file();       // On recupere le contenu du zip dans la variable $filezipped
$open = fopen($fichier_zip, "w");    // On la sauvegarde dans le meme repertoire que les fichiers a zipper
fwrite($open, $filezipped);
fclose($open);

rechercher
precedent    sommaire    suivant    telecharger

Valid XHTML 1.1!Valid CSS!

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2006 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.