2010-07-01 6 views
0

hey guys im la recherche d'une façon de montrer tous les fichiers mp3 dans un répertoireà montrer tous les fichiers d'un répertoire

c'est mon code pour obtenir que:

if ($handle = opendir($dirPath)) { 

     while (false !== ($file = readdir($handle))) { 

     if ($file = ".mp3" && $file = "..") { 
      echo ' 
      <track> 
       <location>'.$dirPath.$file.'</location> 
       <creator>'.$file.'</creator> 
      </track> 
      ';  

      } 
     } 
    closedir($handle); 
} 

maintenant je sais que ce script ne montrera que les fichiers mp3 dans le répertoire parent, mais j'ai besoin de montrer tous les fichiers mp3 dans tous les répertoires dans le répertoire parent

problème est ce code ne peut pas afficher les fichiers dans les sous-répertoires!

+1

voir par exemple http://stackoverflow.com/questions/2861834 – Artefacto

+0

* (référence) * [RecursiveDirectoryIterator] (http://de2.php.net/manual/fr/class.recursivedirectoryiterator.php) – Gordon

+0

duplication possible de [liste PHP de spécifique fichiers dans un répertoire] (http://stackoverflow.com/questions/3062154/php-list-of-specific-files-in-a-directory) – Gordon

Répondre

0

Ce code ne fonctionnera pas du tout. Comme vous définissez la variable $ file à "..", le résultat sera beaucoup de xml contenant $ dirPath et "..".

C'est ce que vous cherchez :)

$it = new RecursiveDirectoryIterator('path/to/files/'); 
foreach (new RecursiveIteratorIterator($it) as $file) 
{ 
    echo $file->getPathname() . '<br />'; 
} 
+0

bon point, mais d'abord comment appliquer les fichiers mp3 de filtrage. 2ème l'adresse $ file-> getPathname() ce n'est pas une adresse web mais son chemin système similaire: britney \ mylove \ heart.mp3 et ce serait un chemin inutile pour une application web! –

+0

@MacTaylor [Introduction à SPL] (http://www.phpro.org/tutorials/Introduction-to-SPL.html) devrait avoir tout ce que vous devez savoir pour l'instant – Gordon

+0

hey Gordon, le seul problème ne peut pas résoudre, devient Adresse web . maintenant l'adresse est juste comme: britney \ mylove \ heart.mp3 et ne peux pas jouer le dossier. un point pour ça?! –

0

Vous devrez effectuer une fonction récursive pour rechercher tous les fichiers MP3.

En outre, vous vouliez probablement dire if ($file == ".mp3" && $file == "..") { au lieu de if ($file = ".mp3" && $file = "..") {, et après cela a changé, vous obtenez une condition qui est toujours fausse. Qu'essayez-vous de faire là-bas?

0

comme icktoofay dit, vous devrez faire une fonction récursive. En outre, votre code a une erreur:

if ($file = ".mp3" && $file = "..") { 

ne fonctionnera pas (et if ($file == ".mp3" && $file == "..") { est faux aussi). cette ligne devrait ressembler à ceci:

if (substr($file,-4) == ".mp3" || $file == "..") { 

si vous voulez montrer le « .. » - sinon il est comme ceci:

if (substr($file,-4) == ".mp3") { 
+0

mon but principal est de trouver tous les fichiers dans un répertoire, parce que je sais comment pour trouver des fichiers dans le répertoire parent et je l'ai fait. merci pour votre remarque –

Questions connexes