Listage d'un répertoire pour lecteur flash
Dernière réponse : dans Programmation
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
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
Lassé par la pub ? Créez un compte
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 :
globalement le script pour parcourir les fichiers dans le repertoire musique :
$path = './musique/';
$folder = opendir($path);
while( $file = readdir($folder) ) {
if (($file != '.')&&($file != '..')){
// on ecarte le cas ou $file designe le répertoire courant et le répertoire parent
// tu peux egalement faire un test avec is_file() pour verifier que $file designe bien un fichier
// et tu peux aussi verifier que le nom du fichier se termine bien par '.mp3'
echo('<fichier>'.$path.$file.'</fichier>');
// la j'ai mis echo mais tu remplie ton fichier xml comme tu le souhaite
}
}
closedir($folder);
Alors chose que j'ai oublié de dire c'est qu'il faut que ce script soit dans le dossier au dessus de musique :
Ensuite, ben essaye déja d'afficher la page create_xml.php qui contient uniquement le code :
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...
+ dossier
|- create_xml.php
|+ musique
|- fichier1.mp3
|- fichier2.mp3
|- fichier3.mp3
|- 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 :
<?php
$path = './musique/';
$folder = opendir($path);
while( $file = readdir($folder) ) {
if (($file != '.')&&($file != '..')){
echo('<fichier>'.$path.$file.'</fichier>');
}
}
closedir($folder);
?>
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...
C'est bon, j'arrive à avoir un résultat, maintenant au lieu d'avoir ce résultat:
J'aimerais avoir ça:
Et ensuite à partir de ce résultat créer un fichier .xml de façon automatique comme ceci:
La ligne
Si tu pouvais encore m'aider ça serait bien ;-)
./musique/fichier1.mp3
./musique/fichier2.mp3
./musique/fichier3.mp3
J'aimerais avoir ça:
./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:
<config>
<param name="mp3" value="./musique/fichier1.mp3|./musique/fichier2|./musique/fichier3.mp3"/>
<param name="title" value="titre_au_choix_1|titre_au_choix_2|titre_ au_choix_3"/>
<param name="height" value="150"/>
<param name="width" value="250"/>
<param name="bgcolor" value="cccc99"/>
<param name="bgcolor1" value="e79a2d"/>
<param name="bgcolor2" value="d38c29"/>
<param name="buttoncolor" value="dddddd"/>
<param name="buttonovercolor" value="f9bf37"/>
<param name="slidercolor1" value="dddddd"/>
<param name="slidercolor2" value="cccccc"/>
<param name="sliderovercolor" value="f9bf37"/>
<param name="textcolor" value="dddddd"/>
<param name="playlistcolor" value="999999"/>
<param name="currentmp3color" value="f9bf37"/>
<param name="scrollbarcolor" value="cccccc"/>
<param name="scrollbarovercolor" value="f9bf37"/>
<param name="showvolume" value="1"/>
</config>
La ligne
serait à modifier manuellement... car je n'ai pas d'autre solution...
<param name="title" value=
Si tu pouvais encore m'aider ça serait bien ;-)
<?php
$path = './musique/';
$folder = opendir($path);
$mp3 = '<param name="mp3" value="';
$filecount = 0; // pour connaitre le nombre total de fichiers
while( $file = readdir($folder) ) {
if (($file != '.')&&($file != '..')){
if ($filecount>0){
// on a déjà inséré 1 ou plusieurs fichiers
$mp3 .= '|' ;
}
$mp3 .= $path.$file ;
$filecount ++; // on incremente le compteur
}
}
$mp3 .= '"/>';
closedir($folder);
echo ($mp3);
?>
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:
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:
Le script php modifierai seulement cette partie:
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 ;-)
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:
<object type="application/x-shockwave-flash" data="player.swf" width="200" height="100">
<param name="movie" value="player.swf" />
<param name="wmode" value="transparent" />
<param name="FlashVars" value="configxml=playlist.xml" />
<p>Texte alternatif</p>
</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:
<config>
<param name="mp3" value="./musique/fichier1.mp3|./musique/fichier2|./musique/fichier3.mp3"/>
<param name="title" value="titre_au_choix_1|titre_au_choix_2|titre_ au_choix_3"/>
<param name="height" value="150"/>
<param name="width" value="250"/>
<param name="bgcolor" value="cccc99"/>
<param name="bgcolor1" value="e79a2d"/>
<param name="bgcolor2" value="d38c29"/>
<param name="buttoncolor" value="dddddd"/>
<param name="buttonovercolor" value="f9bf37"/>
<param name="slidercolor1" value="dddddd"/>
<param name="slidercolor2" value="cccccc"/>
<param name="sliderovercolor" value="f9bf37"/>
<param name="textcolor" value="dddddd"/>
<param name="playlistcolor" value="999999"/>
<param name="currentmp3color" value="f9bf37"/>
<param name="scrollbarcolor" value="cccccc"/>
<param name="scrollbarovercolor" value="f9bf37"/>
<param name="showvolume" value="1"/>
</config>
Le script php modifierai seulement cette partie:
<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 ;-)
Heu je comprends pas tres bien ce que tu me demande... cela dit si tu ecris dans ton fichier php :
ensuite dans la config de ton lecteur tu remplace value="configxml=playlist.xml" par value="configxml=playlist.php" et ca devrait fonctionner
<config>
<?php
// tu remet le code précédent
[...]
?>
<param name="title" value="titre_au_choix_1|titre_au_choix_2|titre_ au_choix_3"/>
<param name="height" value="150"/>
<param name="width" value="250"/>
<param name="bgcolor" value="cccc99"/>
<param name="bgcolor1" value="e79a2d"/>
<param name="bgcolor2" value="d38c29"/>
<param name="buttoncolor" value="dddddd"/>
<param name="buttonovercolor" value="f9bf37"/>
<param name="slidercolor1" value="dddddd"/>
<param name="slidercolor2" value="cccccc"/>
<param name="sliderovercolor" value="f9bf37"/>
<param name="textcolor" value="dddddd"/>
<param name="playlistcolor" value="999999"/>
<param name="currentmp3color" value="f9bf37"/>
<param name="scrollbarcolor" value="cccccc"/>
<param name="scrollbarovercolor" value="f9bf37"/>
<param name="showvolume" value="1"/>
</config>
ensuite dans la config de ton lecteur tu remplace value="configxml=playlist.xml" par value="configxml=playlist.php" et ca devrait fonctionner
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.
Si ça ne fonctionne toujours pas tu peux jeter un coup d'oeil ici, et modifier le script php pour écrire ton fichier xml.
Je crois que je me suis lancé dans quelque chose d'assez dûr
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!
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!
Lassé par la pub ? Créez un compte
- Contenus similaires :
Tags :