Lire fichier midi

Soyez le premier à donner votre avis sur cette source.

Snippet vu 9 378 fois - Téléchargée 16 fois

Contenu du snippet

Permet de jouer un fichier MIDI de manière aléatoire contenu dans un répertoire ("midi" par défaut) au chargement d'une page, fonctionne avec Internet Explorer et Netscape.

Source / Exemple :


<html>
<head>
<title>title>
</head>
<?php              
$repertoire='./midi/';                  // Nom du répertoire contenant les fichiers midi
$compteur=0;                            // Initialisation du compteur de fichier midi
$handle=opendir($repertoire);           // Ouverture du répertoire.

while ($fichier = readdir($handle))     // Lecture de tous les fichiers du repertoires.
{
   if (strlen($fichier)>3)              // On ne lit que les fichiers de plus de 3 caracteres.
       {$extension= strtolower(substr( strrchr( $fichier, "." ), 1 ));  // On recupère l'extension du fichier

       if ($extension=="mid")           // Seule les fichiers ayant une extension .mid
           {  $compteur++;              // sont des fichiers midi :))
              $fichmidi[$compteur]=$fichier;
           }
       }
   }
closedir($handle);

if ($compteur>0)                         // Avons-nous au moins un fichier ??
    {srand((double)microtime()*1000000); // Si oui, on en prends un au hasard.
    $aleatoire=rand(1,$compteur);

    if (ereg("MSIE", $HTTP_USER_AGENT))  // L'ecplorateur est-il Internet explorer ??
        {
        echo "<bgsound src='$repertoire$fichmidi[$aleatoire]' LOOP=INFINITE>";}    // Si oui instruction miracle IE
        else
        {
        echo "<EMBED src='$repertoire$fichmidi[$aleatoire]' AUTOSTART=true HIDDEN=true loop=true></EMBED>";}  // Si non, instruction miracle Netscape.
    }
    ?>

</body></html>

A voir également

Ajouter un commentaire

Commentaires

Messages postés
1123
Date d'inscription
mardi 8 janvier 2002
Statut
Modérateur
Dernière intervention
21 avril 2009
1
Pour faire le directoryIterator, j'avais adapté cette classe pour du php4 (au cas ou).
Si ca t'interesse, elle est là :
http://www.phpcs.com/codes/CLASSE-DIRECTORYITERATOR-PHP4_42884.aspx

Et c'est vrai que ca te facilite le travail énormément !
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
15
Salut,

srand peut être avantageusement remplacée par mt_srand
Par ailleurs, il est dit dans la doc :
"Note: Depuis PHP 4.2.0, vous n'avez plus besoin d'initialiser le générateur de nombres aléatoires avec srand() ou mt_srand() car c'est fait automatiquement."
Donc à moins d'avoir une version obsolète de php, l'initialisation est inutile, que ce soit avec srand() ou mt_srand()

En HTML conforme aux recommandations du W3C :
- les noms des balises sont en minuscule
- les attributs doivent être entourés de guillemets doubles et non simples

Et puis avec des itérateurs en php5 ce serait plus propre et plus court. Un exemple ici :
http://www.phpcs.com/infomsg_LISTER-DOSSIER_1038411.aspx

Mais si tu tiens à utiliser opendir() et readdir(), autant faire ça correctement et proprement :
http://fr3.php.net/manual/fr/function.readdir.php#id2709260

Pour récupérer l'extension, une petite expression régulière peut améliorer le traitement, plutôt que la longue suite de fonctions que tu utilises :
$ext = preg_replace('`.*\.([^\.]*)$`', '$1', $fichier);
L'explication de comment ça marche se trouve ici :
http://www.phpcs.com/infomsg_CHANGER-NOM-FICHIER-CONTIENT-VARIABLE-AVANT-POINT_1037319.aspx

Encore un détail... Dans ton code, tu fermes la balises body, mais tu ne l'as pas ouverte ;)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.