Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

FONCTION RÉCURSIVE QUI PERMET DE DEPLACER DES FICHIERS CONTENU DANS UN SOUS-REPERTOIRE VERS LE REPERTOIRE PARENTS.


Information sur la source

Catégorie :Fichier / Disque Classé sous : fichier, lister, recursif, deplacer Niveau : Initié Date de création : 04/03/2007 Date de mise à jour : 05/03/2007 14:30:15 Vu : 5 474

Note :
Aucune note

Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

Description

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

  • 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);
  • }
  • }
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
 

Historique

05 mars 2007 14:30:15 :
Correction de bug

Commentaires et avis

signaler à un administrateur
Commentaire de webdeb le 05/03/2007 10:20:23

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 :)

++

signaler à un administrateur
Commentaire de juki_webmaster le 05/03/2007 13:47:18

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.

signaler à un administrateur
Commentaire de filoboss le 05/03/2007 14:33:05

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.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Lister fichier (distinction du nom et de l'extension) [ par orelien ] Bonjour,J'aimerais lister les fichiers d'un dossier en distinguant dans deux variables différentes le nom et l'extension de chaque fichier...Quelqu'un lister les fichier pdf d'1rep sur une page web [ par petitepunk ] slt,je voudrais recupérer ts les fichier pdf situé ds un repertoire appelé "test" pour les afficher sur une page web afin que les utilisateurs puissen lister des fichier dans un dossier [ par Lucyberad ] bonjour a tous ! j'ai un script qui me permet de lister les fichiers, que voici: $rep = "/images";  // chemin du dossier image $files = array(); lister un repertoire pour créé un str replace avec tout les fichier [ par ztec ] j'ai un repertoire ou je veut metre des smiley. j'en ai telement, que kj'ai pas envi des les rentrer un par un. les smiley les plus utiliser on ete de lister les fichier d'un répertoire [ par conradfrance ] salut a tousVoila j'ai cherché avant de poser la question mais je ne l'ai pas trouvé (ou mal peut etre si elle y est)Je cherche a savoir si lister un dossier (différence entre fichier et dossier) [ par mierkool ] Bonjour, je voudrais savoir comment fait on pour différencier un dossier d'un fichier quand on liste le contenu d'un dossier :car dans ma liste, le do Lister fichier d'un repertoire distant [ par blat ] Bonjour,Je voudrais lister des fichiers d'un repertoire distant. En gros je veux qu'a partir de www.monsite.com/mapage.php je puisse avoir la liste de Lister un dossier de facon spéciale [ par darkworld ] et bien voila en fait je cherche a lister dans un dossier1 seulement les fichier d'une certaine extensionet ensuite d'ajouter ces fichier a une B Deplacer des fichier vers un autres dossier [ par tonic1 ] Bonjour a tous,petite question rapide.J aimerais avoir la possibilite des deplacer des fichier sur mon serveur d un repertoire vers un autre.Existe t lister dossiers uniquements [ par shadow1779 ] Bonjour,il existe dans les codes de nombreux scripts pour lister le contenu d'un dossier, cependant cela liste les fichiers et dossier contenu, je vou


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version


HTC G1

Entre 449€ et 449€


Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,671 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.