Fonction récursive qui permet de deplacer des fichiers contenu dans un sous-repertoire vers le repertoire parents.

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 491 fois - Téléchargée 19 fois

Contenu du snippet

Cette fonction permet de récuperer le contenu de sous répertoire et de les mettre dans le repertoire parents. Tout fichier non désirer est supprimer

Source / Exemple :


function searchF($url, $ssrep)
   {
   $fd = opendir($url);				// On ouvre le repertoire à scanner
   while ($file = readdir($fd)) 		// On lit le contenu du repertoire
	{
	if ($file != "." && $file != "..")		// On ecarte de l'analyse les dossiers . et ..
		{
      		if(is_file($url.$file))				// on vérifie que ce qu'on analyse est un fichier
			{
			$ext = pathinfo($url.$file, PATHINFO_EXTENSION);		// si c'est un fichier, on récupère l'extension de celui-ci
			if(strtolower($ext) === 'jpg')		// Je verifie que c'est une image.
				{
				if($url != $ssrep)			// Si c'est une images et qu'on ne se trouve pas dans le repertoire initiale
					rename($url.$file, $ssrep.$file);	// on déplace le fichier dans le repertoire initiale
				}
			else
				unlink($url.$file);	// si ce n'est pas un jpg, on supprime le fichier
			}
		if(is_dir($url.$file))		// si ce qu'on analyse est un repertoire, on relance la fonction sur ce repertoire
			{
			searchF($url.$file.'/', $ssrep);
			rmdir($url.$file);		// on supprime le dossier enfant à la fin de l'execution de la fonction
			}
    		}
        close($fd);
	}
   }

Conclusion :


Voila, c'est mon premier code que je poste ici et j'espere qu'il vous servira...

Si les explication sont ambigue, fait le savoir..

Cordialement

A voir également

Ajouter un commentaire

Commentaires

Messages postés
1
Date d'inscription
lundi 10 janvier 2005
Statut
Membre
Dernière intervention
5 mars 2007

Merci pour vos remarque,

En effet je ne connaissait pas ces deux fonction de php. La maj à été apporté.
ce qui en est pour le tableau, c'est une bonne idée dont je n'avais pas pensé. Je vais faire la rectification sous peut.
Messages postés
947
Date d'inscription
mercredi 19 novembre 2003
Statut
Membre
Dernière intervention
5 avril 2008
3
Il faut fermer les handle de dossiers, avec closedir().
Tu ne verifie pas la retour des fonctions (problemes de droits etc).
Tu aurais put utiliser une array() pour decrire les extensions que tu souhaite copier, et les autres seront detruite.
Messages postés
488
Date d'inscription
samedi 5 avril 2003
Statut
Membre
Dernière intervention
31 mars 2009
4
Bien vu le coup de la récursivité par contre j'ajouterai une chose.

Elle ne sert qu'à déplacer un fichier JPG ? Il faudrait faire en sorte que ce soit pour tout type de fichier. Tu peux améliorer la récupération de l'extension. PHP propose une fonction qui fait ça. C'est pathinfo() avec la constante PATHINFO_EXTENSION en second paramètre. Tu peux donc remplacer ta ligne par :

# $ext = pathinfo($url.$file, PATHINFO_EXTENSION);
# if(strtolower($ext) === 'jpg') // Avec strtolower() je prends en compte minuscules, majuscule et mix des deux.

Ton code sera plus propre avec ça :)

++

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.