begin process at 2012 05 30 11:50:03
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Général

 > 

Copier coller d'un répertoire


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Copier coller d'un répertoire

mercredi 10 octobre 2007 à 15:19:09 | Copier coller d'un répertoire

Burnside

Membre Club
Bonjour,

Je suis occupé à créér un script qui grace un un form va créer le repertoire voulu par l'utilisateur et ensuite copier le contenu d'un répertoire dans ce fameux répertoire de l'utilisateur.

J'ai un form on rentre Burnside il me crée bien le repertoire Burnside, le problème c'est la copie des fichiers d'un repertoire vers ce répertoire...

J'utilise ce script : http://www.phpcs.com/codes/COPIER-REPERTOIRE-TOUT-QU-CONTIENT_33553.aspx
et à la fin il demande deux repertoires 
copier_rep ($repertoire, 'source');

Mon souhait n'est pas de copier le répertoire source dans burnside mais uniquement les repertoires et fichiers contenenu dans source.

./Source/admin/
./Source/sql.txt

./Burnside/Source/admin/
./Burnside/Source/sql.txt

je souhaite :
./Burnside/admin
./Burnside/sql.tx

Que dois-je modifier?

Bàv,
Burnside.

..:: Enjoy living in hell ::..
flash

mercredi 10 octobre 2007 à 23:04:01 | Re : Copier coller d'un répertoire

malalam

Administrateur CodeS-SourceS
Hello,

fais voir ton code. C'est juste un problème de chemin.
jeudi 11 octobre 2007 à 11:31:54 | Re : Copier coller d'un répertoire

Burnside

Membre Club
function MakeDir($dir)
      {
      // On vérifie qu'il y ait bien un dossier
      if (($dir == '') or ($dir == '/') or (is_dir($dir))) {
      return 0;
      }
      // Si c'est un dossier simple on le crée
      if (strrpos($dir, '/') == false) {
      mkdir($dir);
      return 0;
      }
      $pos_ini = 0;
      $dir_depart = '';
      while($dir) {
      // Trouve le dossier au début de $dir
      $dossier = '';
      $pos_ini = 0;
      $t = $pos_ini;
      while((strrpos($dossier, '/') == false) and ($t <= strlen($dir))) {
      $t += 1;
      $dossier = substr($dir, $pos_ini, $t);
      }
      if (!is_dir($dir_depart . $dossier)) {
      mkdir($dir_depart . $dossier);
      }
      $dir = substr($dir, $t, strlen($dir));
      $dir_depart .= $dossier;
      }
      }
     
     
      function create_tab ($dir) { // fonction creant le tableau contenant les repertoires et fichiers
  $dir = rtrim ($dir, '/'); // on vire un eventuel slash mis par l'utilisateur de la fonction a droite du repertoire
  if (is_dir ($dir)) // si c'est un repertoire
  $dh = opendir ($dir); // on l'ouvre
  else {
  echo $dir, ' n\'est pas un repertoire valide'; // sinon on sort! Appel de fonction non valide
  exit;
  }
  while (($file = readdir ($dh)) !== false ) { //boucle pour parcourir le repertoire
  if ($file !== '.' && $file !== '..') { // no comment
  $path =$dir.'/'.$file; // construction d'un joli chemin...
  if (is_dir ($path)) { //si on tombe sur un sous-repertoire
  $tableau[$dir]['dir'][] = $path;
  $tabTmp = create_tab ($path); // appel recursif pour lire a l'interieur de ce sous-repertoire
  if (is_array ($tabTmp) && is_array ($tableau))
  $tableau = array_merge ($tableau, $tabTmp);
  }
  else
  $tableau[$dir]['file'][] = $path;
  }
  }
  closedir ($dh); // on ferme le repertoire courant
  if (isset ($tableau)) {
  return $tableau;
  }
  }

  function copier_rep ($destination, $reps, $tableau_dir = array ()) {
  if (empty ($tableau_dir)) {
  //echo 'Entrée';
  $tableau_dir = create_tab ($reps);
  }
  if (!is_array ($reps)) {
  $reps = array ($reps);
  }
  foreach ($reps as $rep) {
  if (!is_dir ($destination.'/'.basename ($rep))) {
  mkdir ($destination.'/'.basename ($rep));
  if (!empty ($tableau_dir[$rep]['file']) && isset($tableau_dir[$rep]['file']) && is_array ($tableau_dir[$rep]['file'])) {
  foreach ($tableau_dir[$rep]['file'] as $fichier) {
  copy ($fichier, $destination.'/'.basename ($rep).'/'.basename ($fichier));
  }
  }
  if (!empty ($tableau_dir[$rep]['dir']) && isset ($tableau_dir[$rep]['dir']) && is_array ($tableau_dir[$rep]['dir'])) {
  copier_rep ($destination.'/'.basename ($rep), $tableau_dir[$rep]['dir'], $tableau_dir);
  }
  }
  }
  }  
     
  ?>
      <?php
      if ( isset ( $_POST['submit'] ) ) {
        $repertoire = $_POST['repertoire'];
          MakeDir($repertoire);
          echo "<b>repertoire ". $repertoire ." correctement inséré<b><br />";           
        copier_rep ($repertoire, 'source'); // 1er paramètre : le répertoire de destination sous forme d'une chaine
                                  // 2d paramètre : le répertoire à copier sous forme d'une chaine ou d'un tableau

}
?>           
<form action = "" method="post">
<table width="500" border="0">
  <tr>
    <td>Nom de sous domaine :</td>
    <td><input type = "text" name = "repertoire" value="" size="30"></td>
  </tr>
  <tr> 
    <td colspan="2"><center><input type = "submit" value = "Envoyer" name="submit"></center></td>
  </tr>      
</table>
</form>

Voilà le code complet...
Burnside.

..:: Enjoy living in hell ::..
flash



Cette discussion est classée dans : répertoire, source, repertoire, copier, burnside


Répondre à ce message

Sujets en rapport avec ce message

sous-repertoire fichier ............ [ par TRASH52 ] TRASH52bon je vous met le code!En fait, je voudrais que mon programme a partir d'u Copier un fichier [ par fredo35m ] Bonjour,J'essaye de copier un fichier sélectionné dans un autre répertoire mais cela semble ne pas fonctionner !! me manque-t-il quelque chose??dans m Ordre de listage d'un répertoire [ par Evangun ] Bonsoir! j'ai trouvé la fonction suivante qui liste le contenu d'un répertoire et des sous-répertoires. Elle marche parfaitement sous easyPHP mais le Ouverture d'un repertoire donnée [ par fredo35m ] Bonjour, y a t il une possibilité d'ouvrir un répertoire donnée sur le serveur?Je m'explique pour l'instant dans mon formulaire j'ai mis un type=file copier/coller le code source sans la numérotation :) [ par frop01 ] Bonjour, je sais très bien que cette question a déjà été poser auparavant mais je ne trouve pas les mots clefs pour faire une recherche sur ce site : Upload multiple de fichier par un formulaire [ par cruzzy ] Bonjour, Je me monte une petite mp3-thèque chez moi avec easyphp 1.8 ( je stocke dans mysql) Une fois que j'ai rempli les différents formulaires de ba source [ par ybouane ] salut existe t'il un code pour empecher tes visiteur de voir la source comme sa il ne pourons pas copier se que tu a fais!!! Car meme si tu block le c Comment lister le contenu d'un répertoire? [ par stankov ] j'ai monté le site d'une église, site dans lequel se trouve un repertoire ARCHIVES. Pour lister le contenu de ce repertoire j'ai écris le script ci-de copier des doc dans un repertoire [ par sws2007 ] Bonjour tout le monde    j'ai un petit probleme j'ai fais un petit script qui copier  a partir d'un formulaire des documents dans un reprtoire se tro Copier un répertoire et tout ce qu'il contient [ par webkiller51 ] Bonjour, Je travaille actuellement sur un projet PHP et j'ai savoir si il existe une fonction ou un moyen de copier un répertoire et tout ce qu'il co


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,607 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales