Forum Clubic

Lire aléatoirement des fichiers mp3 d'un dossier

Bonjour;
j’ai utilisé la methode objet pour inserer des musiques dans ma page web ça marche avec un seul fichier mp3 et avec une playlist. voici le code de la methode objet:
à l’endroit de data et src il faut mettre le chemin d’accès du fichier mp3 à lire.

mon objectif c’est utiliser du code php pour lire aléatoirement des fichiers d’un dossier, j’ai fait ce code pour essayer de lire le contenu d’un dossier ça marche
mais je ne sais pas comment remplir l’endroit data et src de la balise
<objet data="…mp3"

<? $dir = 'mp3'; //$dir is in config.php if ($dir == ''){ $dir=$defaultdir; } $playsong ='mp3'; if ($playsong == ''){ $playsong='all'; } // Loop through all the files found in this directory if (is_dir($dir)) { if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { if (!is_dir($file) && eregi("(.mp3)$", $file) && ($playsong=='all' || $playsong==$file)) { $filesize = filesize($dir.$file); } echo "fichier : $file : type : " . filetype($dir . $file) . "\n"; } closedir($dh); } } merci de me donner un coup de main si vous connaissez la solution!

Je fait pas de php mais tu peux générer un nombre aléatoire (avec RAND_MAX = nb_fichier_dans_dossier) et boucler dans ton dossier tant que tu n’as pas atteint ce nombre généré, la, tu récupères le fichier pointé.

<?php
$dir = 'mp3/'; //$dir is in config.php
if ($dir == '') //Ca sert a rien vu que une ligne au dessus on attribut une valeur a $dir
	{
	$dir=$defaultdir;
	}

$playsong ='mp3';
if ($playsong == '')//Ca sert a rien vu que une ligne au dessus on attribut une valeur a $playsong
	{
	$playsong='all';
	}

$allFiles[0]="";

if (is_dir($dir)) 
	{
	if ($dh = opendir($dir)) 
		{
		$indice = 0;
		while (($file = readdir($dh)) !== false) 
			{
			if (!is_dir($file) && eregi("(.mp3)$", $file) && ($playsong=='all' || $playsong==$file))
				 {
			                     $allFiles[$indice] = $file;
				 }
			$indice++;
			}
		closedir($dh);
		}
	}
echo '<object data= "'.$allFiles[rand(0,$indice)].'" type="audio/mp3" height="200" width="300">
<param name="src" value="" />
<param name="controller" value="true" />
<param name="autoplay" value="true" />
<param name="loop" value="true" />
</object>'; 
?>

Stock tous les fichiers dans une variable tableau nommé $allFiles, pour chaque fichier on incrèmente un indice $indice. Une fois tous les fichiers obtenus dans le tableau, on affiche le flash avec pour valeur d’attribut “data” une occurence aléatoire de $allFiles comprise entre 0 et le nombre de fichiers. Je l’ai fait sous le bloc note et pas testé, mais je pense que c’est la technique la plus efficace (merci de me contredire si ce n’était pas le cas).
Edité le 06/12/2007 à 16:20