begin process at 2012 02 13 08:55:24
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Class et Objet ( POO )

 > SURCHARGE DE LA CLASSE RECURSIVEDIRECTORYITERATOR POUR RÉCUPÉRÉ UNE LISTE DE FICHIERS

SURCHARGE DE LA CLASSE RECURSIVEDIRECTORYITERATOR POUR RÉCUPÉRÉ UNE LISTE DE FICHIERS


 Information sur la source

Note :
5 / 10 - par 1 personne
5,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Class et Objet ( POO ) Classé sous :RECURSIVEDIRECTORYITERATOR, RECURSIVE, fichiers, dossiers, recherche Niveau :Débutant Date de création :09/03/2009 Vu / téléchargé :2 644 / 59

Auteur : Astalavista

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note


 Description

Ce petit code source et une surcharge de RecursiveDirectoryIterator qui permet d'utiliser une méthode getFile pour récupérer tous les fichiers / dossiers récursivement.

Fonctionnement :  
$Dir = new ExtendRecursiveDirectoryIterator("glob://P:/www/*" );
$array = $Dir -> getFiles();

Source

  • class ExtendRecursiveDirectoryIterator extends RecursiveDirectoryIterator
  • {
  • public function getFiles($match = '#.*#i', $onlyDir = false, $recursive = true, $depth = -1)
  • {
  • //static $Files = array();
  • $Files = array();
  • foreach($this as $file)
  • {
  • // Windows' Dir Fix //
  • $fileName = str_replace('\\', '/', $file -> getPathName());
  • if($file -> isDir() && ($depth != 0))
  • {
  • // Windows' Dir Fix //
  • if(preg_match($match, $fileName))$Files[] = $fileName.'/';
  • if($recursive)$Files = array_merge($this -> getChildren() -> getFiles($match, $onlyDir, $recursive, $depth), $Files);
  • }elseif(!$file -> isDir() && !$onlyDir && preg_match($match, $fileName)){
  • $Files[] = $fileName;
  • }
  • }
  • return $Files;
  • }
  • }
class ExtendRecursiveDirectoryIterator extends RecursiveDirectoryIterator
{
  public function getFiles($match = '#.*#i', $onlyDir = false, $recursive = true, $depth = -1)
  {
  //static $Files = array();
  $Files = array();
  foreach($this as $file)
    {
    // Windows' Dir Fix //
    $fileName = str_replace('\\', '/', $file -> getPathName());
    
    if($file -> isDir() && ($depth != 0))
    {
    // Windows' Dir Fix //
    if(preg_match($match, $fileName))$Files[] = $fileName.'/';
    if($recursive)$Files = array_merge($this -> getChildren() -> getFiles($match, $onlyDir, $recursive, $depth), $Files);
    }elseif(!$file -> isDir() && !$onlyDir && preg_match($match, $fileName)){
    $Files[] = $fileName;
    }
    }
return $Files;
}
}

 Conclusion

paramètres :

string $match : recherche avec preg_match
bool $onlyDir : Récupère uniquement les dossiers
bool $recursive : recherche dans les sous dossiers
int $depth : profondeur de la recherche dans les dossiers

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture AFFICHER UNE IMAGE SANS IMAGE (GRÂCE AUX URI)
Source avec Zip SERCACHE2 > CACHE DE PAGES, D'OBJETS, DE REQUÊTES ... (NON T...
Source avec Zip SERSESSIONS > CLASS PHP5 POUR GERER LES SESSIONS SIMPLEMENT ...
Source avec Zip SERTPL > CLASS PHP5 POUR GERER LES TEMPLATES SIMPLEMENT
Source avec Zip SERCACHE > CLASS PHP5 POUR LA CRÉATIONS DE CACHES SIMPLEMENT

 Sources de la même categorie

CLASSE DE GESTION DE "VARIABLES GLOBALES D'ENVIRONNEMENT" par pifou25
Source avec Zip COLLECTION.CLASS.MIN.PHP par thunderhunter
Source avec Zip SIMPLETEMPLATE par thunderhunter
Source avec Zip Source avec une capture VOIR QUI VISITE VOTRE SITE par Dariumis
Source avec Zip CLASS SIMPLE CBASEDONNEE par smag42

 Sources en rapport avec celle ci

Source avec Zip RECHERCHE DES DOUBLONS DANS UNE TABLE MYSQL EN SÉLECTIONNANT... par aladec2007
Source avec Zip GESTION DE FICHIERS AVEC LA SPL par alphanono
EXPLORATEUR FTP SUR 2 NIVEAUX par viki53
Source avec Zip Source avec une capture DORY NAVIGATOR: EXPLORATEUR DE FICHIERS ET DE DOSSIERS par kurt67
CRÉATION D'UNE ARBORESCENCE par Charles Racaud

Commentaires et avis

Commentaire de malalam le 09/03/2009 19:21:01 administrateur CS

Hello,

l'idée est bonne...mais je pense que tu n'as pas vraiment compris le fonctionnement de cette classe et de la SPL.
Compare le fonctionnement de ton code, et de ce code (sans frioriture aucune) :
<?php
foreach(new RecursiveIteratorIterator(new RecursiveDirectoryIterator('.')) as $it) {
echo $it."\n";
}
?>
Après, tu peux jouer sur FilterIterator en plus pour faire des filtres. Et là, tu auras pleinement utilisé la puissance de la SPL :-)
Parce qu'avec ton code, tu ne l'utilises qu'à moitié.

Commentaire de Astalavista le 09/03/2009 23:06:41

Merci de ton aide :) XD
Bon, je croit que tu va pouvoir supprimer ma source dans ce cas :)

Commentaire de FredT le 10/03/2009 09:51:38 5/10

Hello,
Non, non faut pas supprimer!
La source ok ... a pas d'interet si on s'arrete dessus.
Mais pour ceux (comme moi) qui cherche à comprendre au maximum comment ça marche et qui liront le 1er commentaire de malalam,
Ca a l'interet de se creuser un peu la tete et voir comment on peut utiliser la SPL, d'abord avec un mauvais exemple, puis avec un bon.

malalam > une fois de plus, on peut te remercier des conseils judicieux que tu apporte sur phpCS, si si j'insiste :)

Commentaire de neigedhiver le 13/03/2009 18:22:27

Mince, Astalavista, tu me fais mentir... Dans le dernier commentaire que j'ai fait (il y a quelques minutes) je déplorais que personne n'utilise d'itérateur... (et donc la SPL).
Merci donc de chercher à faire autrement qu'avec ce foutu opendir() et ce maudit readdir()...
Et effectivement, comme le souligne Malalam, pour filtrer, le mieux, c'est encore FilterIterator... Tu vas voir comme on prend son pied avec ça...

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Tri de fichiers par date [ par Clem ] Comment trier dans l'orde du plus nouveau au plus vieux, des dossiers ?J'ai trouvé pour afficher les dossiers :&lt;?$rep=opendir('.');while ($file = r Recherche d'une chaine de caractère dans un fichiers et affichage du paragraphe contenant la chaine? [ par dolu007 ] j'ai besoin de programmer un logiciel qui va me permettre de rechercher un mot ou une chaine de caractèredans un fichier lui meme contenu dans un répe Sécurité-fichiers-dossiers [ par stageSAP ] Bonjour,Pour mon site, je protège l'accès aux pages grâce aux variables de sessions et cela marche très bien. Je travaille en local pour l'instant. Su Proteger des fichiers sur un site ..recherche d'un specialiste PHP [ par denisnospam ] Bonjour,Je cherche avant tout un specialiste PHP a qui je pourrais poser des questions de temps en temps hors forum pour ne pas polluer le thread .Ens recherche par mot dans fichier [ par justone72 ] Bonjour,J'ai besoin assez rapidemnt d'un script qui permet de faire une recherche dans un dossier (recherche de fichiers dans le dossier + sous dossie lister fichiers et sous-dossiers [ par Totofweb ] Bonjourdans un script, j'ai besoin de lister les fichiers d'un dossier et les fichiers des sous-dossiers (niveau 1 seulement, mais si vous avez une so effacer tous les fichiers et dossiers a la racine d un site [ par Teclis01 ] Je crois que tout est dans le titre.Je suis decu de free je ne peux plus acceder a mon ftp je peux seulement acceder a mon site en passant par un navi Recherche de fichiers dans plusieur repertoire [ par VANLOC ] Bonjour, J'utilise la fonction ci apres qui me cherche un fichier avec une extension (jpg ici) dans un seul dossier ou j'ai toutes mes images. Ma que Recherche script [ par jipe32 ] Bonjour je voudrais savoir comment creer un espace membre pour envoyer des fichiers sur nos serveurs:l'internaute passe sur mon site, s'inscrit et peu Moteur de recherche sur des fichiers [ par airben ] Bonjour Quelqu'un peut'il m'aider s'il vous plait . Etant debutant , est il possible de cr&#233;e un moteur de recherche sur des fichiers avec comme


Nos sponsors


Sondage...

Comparez les prix

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 : 1,201 sec (4)

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