Votre question

Listage d'un répertoire pour lecteur flash

Tags :
  • Script
  • Programmation
Dernière réponse : dans Programmation
20 Juillet 2007 11:38:39

Salut tout le monde!

Je voulais savoir comment faire un script en php pour lister mes fichiers musicaux et en faire un fichier xml lisible par un lecteur mp3 flash.

Imaginons que le script s'appelle playlist.php et que le fichier xml s'appelle playlist.xml.

Prenons l'exemple que mes fichiers musicaux, playlist.php et playlist.xml soient dans le répertoire /musique.

Il ne me resterai plus qu'à charger la page playlist.php pour mettre à jour mon fichier playlist.xml qui serait indiqué dans le code de mon lecteur flash.

Je compte sur vous ;) 

Autres pages sur : listage repertoire lecteur flash

Anonyme
20 Juillet 2007 12:19:14

Bon alors j'espere que tu as des connaissances, même basiques en php?

globalement le script pour parcourir les fichiers dans le repertoire musique :

  1. $path = './musique/';
  2. $folder = opendir($path);
  3. while( $file = readdir($folder) ) {
  4. if (($file != '.')&&($file != '..')){
  5. // on ecarte le cas ou $file designe le répertoire courant et le répertoire parent
  6. // tu peux egalement faire un test avec is_file() pour verifier que $file designe bien un fichier
  7. // et tu peux aussi verifier que le nom du fichier se termine bien par '.mp3'
  8. echo('<fichier>'.$path.$file.'</fichier>');
  9. // la j'ai mis echo mais tu remplie ton fichier xml comme tu le souhaite
  10. }
  11. }
  12. closedir($folder);
20 Juillet 2007 13:16:16

On vas dire que j'ai pas trop de connaissance en php :heink: 
Je n'arrive pas à faire fonctionner ton script en fait, si tu peux m'aider ça serait bien! ;) 
Contenus similaires
Anonyme
20 Juillet 2007 13:37:16

Alors chose que j'ai oublié de dire c'est qu'il faut que ce script soit dans le dossier au dessus de musique :
+ dossier
|- create_xml.php
|+ musique
|- fichier1.mp3
|- fichier2.mp3
|- fichier3.mp3


Ensuite, ben essaye déja d'afficher la page create_xml.php qui contient uniquement le code :

  1. <?php
  2. $path = './musique/';
  3. $folder = opendir($path);
  4. while( $file = readdir($folder) ) {
  5. if (($file != '.')&&($file != '..')){
  6. echo('<fichier>'.$path.$file.'</fichier>');
  7. }
  8. }
  9. closedir($folder);
  10. ?>


ca devrait t'afficher :
<fichier>./musique/fichier1.mp3</fichier>
<fichier>./musique/fichier2.mp3</fichier>
<fichier>./musique/fichier3.mp3</fichier>

Ensuite au lieu de juste afficher les lignes xml, tu les ecris dans un fichier...
20 Juillet 2007 13:54:57

C'est bon, j'arrive à avoir un résultat, maintenant au lieu d'avoir ce résultat:

  1. ./musique/fichier1.mp3
  2. ./musique/fichier2.mp3
  3. ./musique/fichier3.mp3


J'aimerais avoir ça:

  1. ./musique/fichier1.mp3|./musique/fichier2.mp3|./musique/fichier3.mp3


Et ensuite à partir de ce résultat créer un fichier .xml de façon automatique comme ceci:

  1. <config>
  2. <param name="mp3" value="./musique/fichier1.mp3|./musique/fichier2|./musique/fichier3.mp3"/>
  3. <param name="title" value="titre_au_choix_1|titre_au_choix_2|titre_ au_choix_3"/>
  4. <param name="height" value="150"/>
  5. <param name="width" value="250"/>
  6. <param name="bgcolor" value="cccc99"/>
  7. <param name="bgcolor1" value="e79a2d"/>
  8. <param name="bgcolor2" value="d38c29"/>
  9. <param name="buttoncolor" value="dddddd"/>
  10. <param name="buttonovercolor" value="f9bf37"/>
  11. <param name="slidercolor1" value="dddddd"/>
  12. <param name="slidercolor2" value="cccccc"/>
  13. <param name="sliderovercolor" value="f9bf37"/>
  14. <param name="textcolor" value="dddddd"/>
  15. <param name="playlistcolor" value="999999"/>
  16. <param name="currentmp3color" value="f9bf37"/>
  17. <param name="scrollbarcolor" value="cccccc"/>
  18. <param name="scrollbarovercolor" value="f9bf37"/>
  19. <param name="showvolume" value="1"/>
  20. </config>


La ligne
  1. <param name="title" value=
serait à modifier manuellement... car je n'ai pas d'autre solution...

Si tu pouvais encore m'aider ça serait bien ;-)
Anonyme
20 Juillet 2007 14:04:42

  1. <?php
  2. $path = './musique/';
  3. $folder = opendir($path);
  4. $mp3 = '<param name="mp3" value="';
  5.  
  6. $filecount = 0; // pour connaitre le nombre total de fichiers
  7. while( $file = readdir($folder) ) {
  8. if (($file != '.')&&($file != '..')){
  9. if ($filecount>0){
  10. // on a déjà inséré 1 ou plusieurs fichiers
  11. $mp3 .= '|' ;
  12. }
  13. $mp3 .= $path.$file ;
  14. $filecount ++; // on incremente le compteur
  15. }
  16. }
  17. $mp3 .= '"/>';
  18. closedir($folder);
  19. echo ($mp3);
  20. ?>
20 Juillet 2007 14:16:22

Impossible de faire fonctionner ce code, pourtant je l'ai mis dans un répertoire parent du répertoire "musique".
Anonyme
20 Juillet 2007 14:23:26

verifie donc le code source de la page qu'il te renvoie.
Le truc c'est que ton navigateur interprete le <param/> comme du code html donc il ne l'affiche pas...

sinon tu peux remplacer $mp3 = '<param name="mp3" value="'; par $mp3=' ligne : '; et enlever la ligne $mp3.= '"/>';
20 Juillet 2007 14:39:43

Effectivement le code source me renvoie ce que je cherchais ;-)
Je vois que tu trouvé réponse à tout ce que je demande, c'est super!

Donc pourquoi ne pas aller plus loin?

Voici le code qui fait appel à mon lecteur est:

  1. <object type="application/x-shockwave-flash" data="player.swf" width="200" height="100">
  2. <param name="movie" value="player.swf" />
  3. <param name="wmode" value="transparent" />
  4. <param name="FlashVars" value="configxml=playlist.xml" />
  5. <p>Texte alternatif</p>
  6. </object>

player.swf est le lecteur flash
playlist.xml est le fichier de configuration du lecteur

Au lieu de modifier manuellement le fichier playlist.xml ce serait un un script php s'en chargerait.

Le script php modifierai automatiquement le fichier playlist.xml
Le script xml doit être construit de cette façon:
  1. <config>
  2. <param name="mp3" value="./musique/fichier1.mp3|./musique/fichier2|./musique/fichier3.mp3"/>
  3. <param name="title" value="titre_au_choix_1|titre_au_choix_2|titre_ au_choix_3"/>
  4. <param name="height" value="150"/>
  5. <param name="width" value="250"/>
  6. <param name="bgcolor" value="cccc99"/>
  7. <param name="bgcolor1" value="e79a2d"/>
  8. <param name="bgcolor2" value="d38c29"/>
  9. <param name="buttoncolor" value="dddddd"/>
  10. <param name="buttonovercolor" value="f9bf37"/>
  11. <param name="slidercolor1" value="dddddd"/>
  12. <param name="slidercolor2" value="cccccc"/>
  13. <param name="sliderovercolor" value="f9bf37"/>
  14. <param name="textcolor" value="dddddd"/>
  15. <param name="playlistcolor" value="999999"/>
  16. <param name="currentmp3color" value="f9bf37"/>
  17. <param name="scrollbarcolor" value="cccccc"/>
  18. <param name="scrollbarovercolor" value="f9bf37"/>
  19. <param name="showvolume" value="1"/>
  20. </config>


Le script php modifierai seulement cette partie:
  1. <param name="mp3" value="./musique/fichier1.mp3|./musique/fichier2|./musique/fichier3.mp3"/>


Il suffirait donc de l'aisser le champ pour les titres vide comma ça le lecteur affichera le non du fichier lui même.

Résultat, il ne resterai plus qu'a charger les fichiers misicaux pour pouvoir les écouter tranquillement sans toucher aux codes!

Si c'est réalisable bien entendu ;-)
Anonyme
20 Juillet 2007 14:57:43

Heu je comprends pas tres bien ce que tu me demande... cela dit si tu ecris dans ton fichier php :

  1. <config>
  2. <?php
  3. // tu remet le code précédent
  4. [...]
  5. ?>
  6. <param name="title" value="titre_au_choix_1|titre_au_choix_2|titre_ au_choix_3"/>
  7. <param name="height" value="150"/>
  8. <param name="width" value="250"/>
  9. <param name="bgcolor" value="cccc99"/>
  10. <param name="bgcolor1" value="e79a2d"/>
  11. <param name="bgcolor2" value="d38c29"/>
  12. <param name="buttoncolor" value="dddddd"/>
  13. <param name="buttonovercolor" value="f9bf37"/>
  14. <param name="slidercolor1" value="dddddd"/>
  15. <param name="slidercolor2" value="cccccc"/>
  16. <param name="sliderovercolor" value="f9bf37"/>
  17. <param name="textcolor" value="dddddd"/>
  18. <param name="playlistcolor" value="999999"/>
  19. <param name="currentmp3color" value="f9bf37"/>
  20. <param name="scrollbarcolor" value="cccccc"/>
  21. <param name="scrollbarovercolor" value="f9bf37"/>
  22. <param name="showvolume" value="1"/>
  23. </config>


ensuite dans la config de ton lecteur tu remplace value="configxml=playlist.xml" par value="configxml=playlist.php" et ca devrait fonctionner
20 Juillet 2007 15:16:49

Je viens de tester et ça ne fonctionne pas en changeant le fichier playlist.xml et playlist.php
Anonyme
20 Juillet 2007 15:21:24

Je n'ose pas poser la question mais je me lance : le fichier php tu l'as bien renommé playlist.php?

Si ça ne fonctionne toujours pas tu peux jeter un coup d'oeil ici, et modifier le script php pour écrire ton fichier xml.
20 Juillet 2007 15:27:26

Je crois que je me suis lancé dans quelque chose d'assez dûr :D 
Je pense que je vais seulement charger mes fichiers sur mon ftp et cliquer directement sur le fichier voullu dans l'index of musique et vu que j'ai quick time d'installé la musique sera prise en compte directement dans une page auto générée!

Je te remercie énormément pour tes réponses! :jap: 
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS