2010-08-31 15 views
0

J'ai une situation, je crée un dossier chaque fois que le nouvel utilisateur s'enregistre.le nom du dossier est égal à username.so donc le dossier user_data contient tous les dossiers dont le nom est égal au nom d'utilisateur. lorsque l'utilisateur télécharge quelque chose, il enregistre directement dans le dossier de son nom d'utilisateur désiré. Alors maintenant je veux chercher le fichier perticular à partir de ces dossiers. Je sais que, ce fichier particulier enregistrer dans le dossier user_data mais je ne sais pas dans user_data foder quel dossier contient ce fichier. alors quel sera le code pour la recherche de fichier dans le répertoire.rechercher des fichiers dans le répertoire en utilisant php

+1

double possible (http://stackoverflow.com/questions/2418068/php-spl-recursivedirectoryiterator-recursiveiteratoriterator-retrieving-the-full) [récupérer l'arbre complet PHP SPL RecursiveDirectoryIterator RecursiveIteratorIterator] – Gordon

Répondre

4

un coup d'oeil à RecursiveDirectoryIterator combiner avec strstr ou preg_match

+0

Si le nom de fichier est connu, il n'y a pas besoin de 'strstr' ou' preg_match' – Gordon

+0

oui votre droit si le nom de fichier (y compris l'extension) est connu ses seules chaînes de comparaison (après 'basename' sur' RecursiveDirectoryIterator :: getSubPathName() ' – teemitzitrone

4

glob() devrait faire l'affaire. Voici un exemple de son utilisation. espère que cela aide:

$filenames = glob('user_data\\'. $username . '\\*.jpg'); 
foreach ($filenames as $filename) { 
    echo $filename ."\n"; 
} 
+1

http://php.net/manual/fr/function.glob.php – Mikey1980

+1

Mais il y a un problème quand '$ username' contient des caractères spécialement traités tels que' * 'et'? ', Donc en utilisant la classe' DirectoryIterator' et ses dérivés est IMO un appr plus adapté oach au problème. – Frxstrem