begin process at 2008 07 25 12:27:43
1 216 188 membres
156 nouveaux aujourd'hui
14 180 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

LIRE FICHIER MIDI


Information sur la source



Description

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

  • <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>
<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>
  • signaler à un administrateur
    Commentaire de neigedhiver le 22/11/2007 16:31:19

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

  • signaler à un administrateur
    Commentaire de codefalse le 22/11/2007 22:38:14 administrateur CS

    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 !

Ajouter un commentaire

Pub



Appels d'offres

Animation Flash alimen...
Budget : 6 000€
Creation portail video
Budget : 3 000€
Site de e-commerce
Budget : 5 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS