Lire fichier midi

Soyez le premier à donner votre avis sur cette source.

Snippet vu 9 680 fois - Téléchargée 18 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
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
22 nov. 2007 à 22:38
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 !
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 18
22 nov. 2007 à 16:31
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.