begin process at 2012 02 15 00:01:17
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

Divers

 > 

Fonction récursive


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

Fonction récursive

mercredi 11 février 2004 à 06:43:17 | Fonction récursive

Trigun222



Salut, j'ai trouvé un script qui répond à mes exigences seulement le problème c'est qu'il est illisible et je ne sais pas ou il faut mettre le répertoire d'origine et celui de destination :( merci de m'aider ;o)

<?php
/*
* Fonction récursive pour copier une arborescence
* de repertoires et fichiers équivalent d'un cp -r
* Renvoie 1 si tout c'est bien passé, 0 dans le
* cas contraire.
*
* Version 1.0 - Licence GPL -
*
* Merci de ma mailer les correctifs et détection
* de bugs éventuels
* Olivier : pnine@free.fr
*
* Pour l'utiliser appeler la fonction cp_recursif avec
* le path en absolue du repertoire source et du repertoire
* de destination.
* Attention : aucun test n'a été fait avec un path en relatif...
*/

function cp_recursif($source, $destination){

// Test sur le passage des données
if(empty($source) OR empty($destination))
return(0);

// Test sur l'absence d'un repertoire identique à celui à copier
if(is_dir($destination))
return(0);

// Test sur l'existence du repertoire à copier
if(!@chdir($source))
return(0);

if(!@mkdir($destination, 0777))
return(0);


// Copie tous les fichiers du repertoire racine
$dir = opendir(".");

while($fichier_rep = readdir($dir)){
if($fichier_rep != "." && $fichier_rep != ".."){
if (!is_dir($fichier_rep)){
if (!@copy($fichier_rep, $destination."/".$fichier_rep))
return(0);
}
}
}
closedir($dir);


$test = recursif_cp($source, $destination, "");

if ($test == 0)
return(0);

else
return(1);

}


function recursif_cp($source, $destination, $path_courant){


$dir = opendir(".");

while($fichier_rep = readdir($dir)){

if($fichier_rep != "." && $fichier_rep != ".."){

// Test si un repertoire n'est pas encore copié
if (is_dir($fichier_rep) && !is_dir($destination.$path_courant."/".$fichier_rep)){

closedir($dir);


if(!@mkdir($destination.$path_courant."/".$fichier_rep, 0777))
return(0);

$path_courant .= "/".$fichier_rep;

if (!@chdir($source.$path_courant))
return(0);


$dir = opendir(".");

while($fichier_rep = readdir($dir)){
if($fichier_rep != "." && $fichier_rep != ".."){
if (!is_dir($fichier_rep)){
if (!@copy($fichier_rep, $destination.$path_courant."/".$fichier_rep))
return(0);
}
}
}

closedir($dir);

return(recursif_cp($source, $destination, $path_courant));

}

}

}

closedir($dir);

if(empty($path_courant))
return(1);

if (!@chdir(".."))
return(0);

$path_courant = dirname($path_courant);

return(recursif_cp($source, $destination, $path_courant));
}
?>


mercredi 11 février 2004 à 10:06:17 | Re : Fonction récursive

davwart

salut!

tu dis:
"je ne sais pas ou il faut mettre le répertoire d'origine et celui de destination"

à priori c toi qui doit choisir ça, pas le programme!!!
mercredi 11 février 2004 à 11:04:28 | Re : Fonction récursive

Trigun222


vi c'est moi qui choisi mais justement sais pas ou il faut mettre dans le script :(
mercredi 11 février 2004 à 11:07:04 | Re : Fonction récursive

davwart

"
*
* Pour l'utiliser appeler la fonction cp_recursif avec
* le path en absolue du repertoire source et du repertoire
* de destination.
"

donc tu fais un cp_recursif(source, destination);
mercredi 11 février 2004 à 11:16:05 | Re : Fonction récursive

Trigun222


cp_recursif(home/www/user88/upload, /upload2);


ça ne marche pas chez moi :\
mercredi 11 février 2004 à 11:26:33 | Re : Fonction récursive

davwart

moi je mettrai des guillements autours des chemin de repertoires..

ton dossier /upload2 existe deja?
mercredi 11 février 2004 à 11:35:25 | Re : Fonction récursive

Trigun222


oui il existe déjà ;-)
mercredi 11 février 2004 à 11:37:25 | Re : Fonction récursive

davwart

ben il faut pas ;)

if(is_dir($destination))
return(0);


Cette discussion est classée dans : fonction, récursive


Répondre à ce message

Sujets en rapport avec ce message

pb de fonction récursive sur une arborescence sur une base SQL [ par ludovicanceaux ] Salut à tous, J'ai un menu sur plusieurs niveaux stocké dans ma base de donnée et j'ai un pb dans ma fonction récursive, ca fait depuis hier, que j comment faire une fonction en php 5 [ par walidzan ] Bonjour je suis debutant en php 5; je vais faire un classe et une fonction article pour afficher des articles j'ai reussi de faire la connexion au ba Exécution d'un executable (Octave) en PHP [ par chiyo420 ] Bonjour à tous ! Je suis débutante en php et j'ai besoin de vos lumières. Cela fait depuis quelques jours que je cherche en vain une solution à mon p fonction exec et argument [ par chgall2 ] bonjour a tous, je voudrais executer un script shell depuis php et j'ai besoin de vos lumières dans mon code php: exec("sudo /root/scripts/ajout.sh Fonction pour obtenir une couleur en héxa [ par lilj ] Bonjour, je voudrais savoir s'il existe une fonction qui retourne une couleur en hexadécimal de façon aléatoire ?? Merci à vous, Cartes colorées [ par meteo59223 ] Bonsoir à tous, Voilà, je suis passionné de météo et j'aimerai bien pouvoir faire mes propres cartes de température, vent etc ... Colorées en fonctio Listé déroulante en fonction d'une liste de point [ par astuces_jeux ] Bonjour à tous, Le script que je vais vous demander va sûrement vous paraître simple et bizarre, pourtant.. J'ai mis à mes membre un système de point Comment réagit la fonction mail() ? [ par NEO III ] Bonjour, Pour un de mes scripts, j'utilise la fonction mail() de php. L'adresse du destinataire est entrée par le destinataire lui-même dans un formu Appel de Fonction JavaScript avec variable php [ par DCT_Jones ] Bonjour tout le monde, Me dites pas que c'est impossible j'y crois pas. Je voudrais appeler une de mes fonction JS en mettant en paramètre une varia php & ODBC construction de requête en fonction des variables [ par Razily ] Bonjour à tous ; mon stage évolue et là on me demande de créer des formulaires contenant des cases à cocher et des listes déroulantes et et de créer


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 2,636 sec (3)

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