Tom's Guide > Forum > Programmation > Listage d'un répertoire pour lecteur flash

Listage d'un répertoire pour lecteur flash

Forum Programmation : Listage d'un répertoire pour lecteur flash

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

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

------------------------------ http://sms.informatiquefrance.com
Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

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 :

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

Répondre à xaebhal

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! ;)


Message édité par Geemp@ le 20-07-2007 à 13:16:48
------------------------------ http://sms.informatiquefrance.com
Répondre à Geemp@

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 :

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...

Répondre à xaebhal

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

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



J'aimerais avoir ça:

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

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

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


Message édité par Geemp@ le 20-07-2007 à 13:56:49
------------------------------ http://sms.informatiquefrance.com
Répondre à Geemp@

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

Répondre à xaebhal

Impossible de faire fonctionner ce code, pourtant je l'ai mis dans un répertoire parent du répertoire "musique".

------------------------------ http://sms.informatiquefrance.com
Répondre à Geemp@

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.= '"/>';

Répondre à xaebhal

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:

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

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

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

------------------------------ http://sms.informatiquefrance.com
Répondre à Geemp@

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

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

Répondre à xaebhal

Je viens de tester et ça ne fonctionne pas en changeant le fichier playlist.xml et playlist.php

------------------------------ http://sms.informatiquefrance.com
Répondre à Geemp@

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.

Répondre à xaebhal

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:

------------------------------ http://sms.informatiquefrance.com
Répondre à Geemp@
Tom's Guide > Forum > Programmation > Listage d'un répertoire pour lecteur flash
Aller à :

Il y a 2708 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens