IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Ordre alphabétique ScanDirectory


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    dev debutant
    Inscrit en
    Septembre 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : dev debutant

    Informations forums :
    Inscription : Septembre 2016
    Messages : 8
    Points : 1
    Points
    1
    Par défaut Ordre alphabétique ScanDirectory
    Bonsoir,

    J'ai trouvé ce code Utilisant la la fonction ScanDirectory que j'ai réussi a faire fonctionner même si je n'y comprend pas grand chose ^^. Dans lequel j'ai incorporé un lecteur de playlist utilisant la balise <audio>.
    La fonction scanne donc le répertoire et m'affiche les chansons dans le lecteur. Mais pas dans l'ordre alphabétique ou numérique.... En sachant que les pistes audio commence généralement par "01" "02" etc...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <?php
    function ScanDirectory($Directory){
     
    	  $MyDirectory = opendir($Directory) or die('Erreur');
    	 while ($Entry = @readdir($MyDirectory)) {
    	  if(is_dir($Directory.'/'.$Entry)&& $Entry != '.' && $Entry != '..') {
    					echo '<ul id="signature">'.$Entry.'<a href="http://monsite.fr" target="_blank"></a></ul><audio tabindex="0" id="player" controls="controls"></audio>
    		<ul id="playlist">';
    		ScanDirectory($Directory.'/'.$Entry);
     
    					echo '</ul>';
    }
    	else {
     
    	   echo '<li><a href="'.$Entry.'">'.$Entry.'</a></li>';
    }
    }
       closedir($MyDirectory);
    }
     
    ScanDirectory('../dossier_musique');
     
    ?>
    </ul>]
    J'ai trouvé ça.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    $tab = array('daniel','isabelle','david','robert', 'antoine');
    sort($tab); 
    print_r($tab);
    ?>
    Mais je n'arrive pas a l'incorporer au code.

    Comment les pistes peuvent-elles s'afficher dans l'ordre ?

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu as un seul repertoire ou des sous-repertoires ?
    Il faut trier les chansons ou aussi les repertoires ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    dev debutant
    Inscrit en
    Septembre 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : dev debutant

    Informations forums :
    Inscription : Septembre 2016
    Messages : 8
    Points : 1
    Points
    1
    Par défaut Les 2
    J'ai des sous répertoires et et il faut trier aussi les fichiers qu'il contiennent.

    Le nom du répertoire me sert de nom d'album, c'est $Entry

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<ul id="signature">'.$Entry.'<a href="http://monsite.fr" target="_blank"></a></ul><audio tabindex="0" id="player" controls="controls"></audio>

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    DirectoryIterator ou Scandir classent par ordre alphabétique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <?php
    function ScanDirectory($Directory){
    	foreach (new DirectoryIterator($Directory) as $fileInfo) {
    		if($fileInfo->isDot()) continue;
    		$Entry = $fileInfo->getFilename();
    		if($fileInfo->isDir()) {
    			echo '<ul id="signature">'.$Entry.'<a href="http://monsite.fr" target="_blank"></a></ul><audio tabindex="0" id="player" controls="controls"></audio>';
    			ScanDirectory($Directory . DIRECTORY_SEPARATOR . $Entry);
    		}
    		else {
    			echo '<li><a href="'.$Entry.'">'.$Entry.'</a></li>';
    		}
    	}
    }
     
    ScanDirectory('../dossier_musique');
    ?>
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    dev debutant
    Inscrit en
    Septembre 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : dev debutant

    Informations forums :
    Inscription : Septembre 2016
    Messages : 8
    Points : 1
    Points
    1
    Par défaut ça ne marche pas
    Ca ne classe pas les chansons et j'ai du modifier un peu le code pour qu'il affiche les fichiers dans le lecteur mais il affiche ça bizarrement (plusieurs lecteurs pour rien ou il saute un repertoire sur deux..je ne sais pas) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?php
    function ScanDirectory($Directory){
    	foreach (new DirectoryIterator($Directory) as $fileInfo) {
    		if($fileInfo->isDot()) continue;
    		$Entry = $fileInfo->getFilename();
    		if($fileInfo->isDir()) {
    			echo '<ul id="signature">'.$Entry.'<a href="http://monsite.fr" target="_blank"></a></ul>
    	<audio tabindex="0" id="player" controls="controls"></audio>
    		<ul id="playlist">';
    			ScanDirectory($Directory . DIRECTORY_SEPARATOR . $Entry);
     
    			echo '</ul>';
    		}
    		else {
    			echo '<li><a href="'.$Entry.'">'.$Entry.'</a></li>';
    		}
    	}
    }
     
    ScanDirectory('../dossier_musique');
    ?>
    Ce code marche pour un dossier précis et les chansons sont classée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <div>
    <ul id="signature">ALBUM<a href="http://monsite.fr" target="_blank"></a></ul>
    	<audio tabindex="0" id="player" controls="controls"></audio>
    		<ul id="playlist">
    <?php
     
    echo '<ul>';
     
    foreach (scandir("./musique/artiste/album") as $fichier) 
     
    echo '<li><a href="./musique/artiste/album/' . $fichier . '">' . $fichier . '</a></li>';
     
    echo '</ul>';
    ?>
    </div>
    Voici le code de base du lecteur de playlist html5 sans le css :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    <html>
    <head>
    <title>HTML5 Audio Player with Playlist</title>
    <script>
    function loadSong(elt, e) {
    if(!e) var e = window.event;
    document.getElementById("player").src=elt.href;
    document.getElementById("player").load();
    document.getElementById("player").play();
    return false;
    }
    window.onload = function() {
    links = document.getElementById("playlist").getElementsByTagName("a");
    for(var i = 0; i<links.length; i++) {
    links[i].onclick=function(e) { return loadSong(this, e); };
    }
    }
    </script>
    </head>
    <body>
    <div>
    <audio tabindex="0" id="player" controls="controls">
    balise audio HTML5 inconnue</audio>
    <ul id="playlist">
    <li><a href="fichier1.ogg" onclick="loadSong()">fichier1</a></li>
    <li><a href="fichier2.ogg" onclick="loadSong()">fichier2</a></li>
    <li><a href="fichier3.ogg" onclick="loadSong()">fichier3</a></li>
    </ul>
    <ul id="signature">cc-by-sa <a href="http://www.monsite.org"
    target="_blank">signature</a></ul>
    </div>
    </body>
    </html>
    :

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Regarde sans le lecteur si c'est correct :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <?php
    function ScanDirectory($Directory){
    	$dir = scandir($Directory);
    	foreach ($dir as $Entry) {
    		if($Entry == '.' || $Entry == '..') continue;
     
    		if(is_dir($Directory . DIRECTORY_SEPARATOR . $Entry)) {
    			echo '<ul><li>Dossier' . $Entry . '</li>
    				<ul>';
    			ScanDirectory($Directory . DIRECTORY_SEPARATOR . $Entry);
     
     
    		}
    		else {
    			echo '<li>Fichier'.$Entry.'</li>' . "\r\n";
    		}
    	}
    	echo '</ul>';
    }
     
    ScanDirectory('d:\music');
    ?>
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    dev debutant
    Inscrit en
    Septembre 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : dev debutant

    Informations forums :
    Inscription : Septembre 2016
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Oui c'est correct.

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    dev debutant
    Inscrit en
    Septembre 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : dev debutant

    Informations forums :
    Inscription : Septembre 2016
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Mais du coup tu pourrait m'indiquer comment incorporer le lecteur ?

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    dev debutant
    Inscrit en
    Septembre 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : dev debutant

    Informations forums :
    Inscription : Septembre 2016
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    J'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    <?php
    function ScanDirectory($Directory){
    	$dir = scandir($Directory);
    	foreach ($dir as $Entry) {
    		if($Entry == '.' || $Entry == '..') continue;
     
    		if(is_dir($Directory . DIRECTORY_SEPARATOR . $Entry)) {
    			echo '<ul id="signature">' . $Entry . '<a href="http://monsite.fr" target="_blank"></a><audio tabindex="0" id="player" controls="controls"></audio>
    		<ul id="playlist">';
    			ScanDirectory($Directory . DIRECTORY_SEPARATOR . $Entry);
     
     
    		}
    		else {
    			echo '<li><a href="'.$Entry.'">'.$Entry.'</a></li>' . "\r\n";
    		}
    	}
    	echo '</ul>';
    }
     
    ScanDirectory('../dossier_musique');
    ?>
    Et ça marche a un détail pres : le lecteur est normalement encadré par une <div>. La ça me "colle" les lecteurs. Je vois pas trop comment intégrer la div...

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    dev debutant
    Inscrit en
    Septembre 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : dev debutant

    Informations forums :
    Inscription : Septembre 2016
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Pour la div c'etait simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?php
    function ScanDirectory($Directory){
    	$dir = scandir($Directory);
    	foreach ($dir as $Entry) {
    		if($Entry == '.' || $Entry == '..') continue;
     
    		if(is_dir($Directory . DIRECTORY_SEPARATOR . $Entry)) {
    			echo '<div><ul id="signature">' . $Entry . '<a href="http://monsite.fr" target="_blank"></a><audio tabindex="0" id="player" controls="controls"></audio><ul id="playlist">';
    			ScanDirectory($Directory . DIRECTORY_SEPARATOR . $Entry);
     
     
    		}
    		else {
    			echo '<li><a href="'.$Entry.'">'.$Entry.'</a></li>' . "\r\n";
    		}
    	}
    	echo '</ul></div>';
    }
     
    ScanDirectory('../dossier_musique');
    ?>
    Par contre les lecteurs ne lisent pas les fichiers : /

  11. #11
    Nouveau Candidat au Club
    Homme Profil pro
    dev debutant
    Inscrit en
    Septembre 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : dev debutant

    Informations forums :
    Inscription : Septembre 2016
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Ca affiche les fichier mais ca ne les rend pas accessible.

  12. #12
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div><ul id="signature">' . $Entry . '<a href="http://monsite.fr" target="_blank"></a><audio tabindex="0" id="player" controls="controls"></audio><ul id="playlist">
    Il faudrait penser à apprendre les bases du HTML...


    Utilisation d'audio et video en HTML5

Discussions similaires

  1. Affichage par ordre alphabétique
    Par masseur dans le forum Langage
    Réponses: 8
    Dernier message: 08/12/2005, 11h41
  2. [débutant] tri vecteur string ordre alphabétique
    Par Tom Sawyer dans le forum SL & STL
    Réponses: 2
    Dernier message: 26/07/2004, 17h40
  3. Inhiber l'ordre alphabétique des attributs sous Xerces
    Par philippe rousseau dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 04/12/2003, 17h19
  4. Tri par ordre alphabétique
    Par orus8 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 17/04/2003, 19h27
  5. [] Tri d'un tableau par ordre alphabétique
    Par cafeine dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 17/09/2002, 08h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo