begin process at 2010 02 09 22:12:46
  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

Lien vers une fonction php [ par Daniel-J ] Je cherche à faire un lien qui ne mène vers rien!!juste qui lance une fonction php!!!puis une autre question, savoir comment émuler le clic sur le bou fonction session_start [ par drakull ] Bonjour,Je suis chez free.fr et j'essaye de faire une zone membre, mais j ai un message d erreur à l utilisation de la fonction session_start :Call to génération d'une page php par php [ par Vapula ] Bonjour à tousJe souhaiterais générer une page php grâce à une fonction php , mais le problème est que la fonction envoie bien le code html, et php SA Help fonction Mail() [ par tarantula007 ] Je suis sous free et je ne peut pas utiliser la fonction mail(), comment puis je faire, quelle autre methode puis je utiliser Cookie et fonction [ par Masterfight ] Salut,j'ai un cookie qui a cette gueule :$panier[paris]$panier[newyork]etcPuis-je, et si oui comment, passer le "paris" en paramètres das une fonction Syntaxe pour mettre une lettre en majuscule [ par Warwick ] Bonjour à tous, j'ai une question, j'aimerais savoir quelle est la syntaxe pour mettre une lettre en majuscule en Php.Faut t-il écrireucfirst($variabl Fonction PHP [ par jbrek ] Y a t il un fonction PHP qui remplace les par des ???merci d'avance... SPLIT [ par fatNugly ] y'a t'il une fonction en php qui fait la meme chose que la fonction split en vb soitune fonction a laquelle on donne le nom du string ansi que le cara PHP et Javascript [ par romagnoli64 ] Bonjour à tout le monde! J'espère que vous pourrez m'aider!! Voilà mon problème, j'ai un fichier "test.php3", dans lequel une fonction en Javascript e pb avec la fonction system() [ par soseki ] Bonjour, je n'arrive pas à lancer la commende shell (sous linux) suivante:echo 'bob' | ./mon_script_perl.plApperement la fonction system n'accepte pas


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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 : 0,328 sec (4)

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