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 :

Lister un répertoire PHP


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 154
    Points : 57
    Points
    57
    Par défaut Lister un répertoire PHP
    Bonjour à tous,

    Je recherche un script en php qui liste les fichiers d'un dossier en indiquant l'extension et le taille de celui-ce et si possible la date.
    J'ai regarder sur le forum mais j'ai pas trouver ce que je chercher j'en ai tester mais fonctionne pas.

    Merci par avance.

    @+Filou

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Ce n'est pourtant pas les ressources qui manquent :

    Explorateur de fichiers en PHP
    Gestionnaire de fichiers en PHP (en t'arrêtant au début du script qui liste les fichiers)
    Comment lister les fichiers et dossiers triés par ordre lexicographique ?

    Et les fonctions filesize, filetype, pathinfo...

    Le mieux pour toi, c'est de trouver un script qui fonctionne et de l'adapter pour ajouter ce qui manque dedans...

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 154
    Points : 57
    Points
    57
    Par défaut
    Merci pour ta reponse aussi rapide.

    Les 2 premiers liens avec leur scripts c'est ceux que j'ai testés et qui ne fonctionne pas, le dernier fonctionne mais j'aurai aimer lister un répertoire bien spécifique est quand on clic sur le fichier soit sa l'ouvre ou soit sa le télécharge.
    Cela est-il possible ?

    Merci par avance

    @+ Filou

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

    Tu ne veux pas qu'on t'apporte aussi un café et des croissants ?

    À TOI d'adapter les scripts à ton besoin spécifique...


    N.B. ne confonds pas :
    "ça ne fonctionne pas"
    et
    "Je ne sais pas le faire fonctionner"

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 154
    Points : 57
    Points
    57
    Par défaut
    Bonjour

    Non merci pour le café par contre le croissant oui.

    Vous avez raison je me suis mal exprimé.
    Je reprend depuis le début.
    Je suis novice dans la programmation php, je fait un petit site un peu de tout et de rien.

    Pour les 2 premiers scripts j'ai modifier mais toujours un message erreur.
    Donc oui je ne sais pas faire.
    Je recherche un script qui affichera les fichiers du répertoire sous forme de lien afin de pouvoir les lire ou les télécharger.

    Merci pour votre aide et vos réponses.

    @+ Filou

  6. #6
    Membre éclairé Avatar de Geoffrey74
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2007
    Messages : 515
    Points : 760
    Points
    760
    Par défaut
    Salut,

    à défaut de te donner un code tout fais, donne nous ton code pour que l'on puisse t'aiguiller dans une correction.

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 154
    Points : 57
    Points
    57
    Par défaut
    Voila mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $nomRepertoire = "./humour/diaporamas";
    if (is_dir($nomRepertoire))
       {
       $dossier = opendir($nomRepertoire);
       while ($Fichier = readdir($dossier))
           {
          if ($Fichier != "." AND $Fichier != ".." AND (stristr($Fichier,'.pdf') OR stristr($Fichier,'.pps') OR stristr($Fichier,'.mp4')))
     
            }    
       closedir($dossier);
       }else{
       echo' Le répertoire spécifié n\'existe pas';
       }
    Merci de votre aide

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par filou80 Voir le message
    ...mais toujours un message erreur...
    Il faut nous montrer le message erreur complet. Sinon on ne peut pas deviner.


    J'ait fait un explorateur de dossier tantôt...
    On peut le télécharger ici (archive zip).

    En voilà le code :
    Code php : 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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    <?php
    // -----------------------------
    // Explorateur de dossier / fichiers
    function explore_dir_scan_html($dir, $niv=0, $id=0)
    {
    	$html = null;
    	$html_dirs = null;
    	$html_fils = null;
    	if($niv==0){ $html .= '	<ul>'."\n"; }
    	if ($handle = opendir($dir)) {
    		while (false !== ($entry = readdir($handle))) {
    			$id++;
    			if(is_dir($dir.'/'.$entry)) // dossier
    			{
    				if($entry!='..' && $entry!='.')
    				{
    				 $html_dirs .= str_repeat("\t",$niv+1).'<li class="dir" id="div_'.$id.'">'.$entry."\n";
    				 $html_dirs .= str_repeat("\t",$niv+2).'<ul class="sub_dir" id="sub_'.$id.'">'."\n";
    				 $html_dirs .= explore_dir_scan_html($dir.'/'.$entry, $niv+1, $id);
    				}				
    			} else { // fichier
    				 $html_fils .= str_repeat("\t",$niv+2).'<li class="fil" id="fil_'.$id.'"><a href="'.$dir.'/'.$entry.'" target="_blank">'.$entry.'</a></li>'."\n";
    			}
    			if(is_dir($dir.'/'.$entry))
    			{
    				if($entry!='..' && $entry!='.')
    				{
    				 $html_dirs .= str_repeat("\t",$niv+2).'</ul>'."\n";
    				 $html_dirs .= str_repeat("\t",$niv+1).'</li>'."\n";
    				}
    			}
    		}
    		closedir($handle);
    		$html .= $html_dirs; // dossiers
    		$html .= $html_fils; // fichiers
    	}    
    	if($niv==0){ $html .= '	</ul>'."\n"; }
    	return $html;
    };
    // -----------------------------
    ?>
    <!DOCTYPE html>
    <html>
    <head>
    	<title></title>
    <script>
    // -----------------------------
    // OUVRIR / FERMER les DOSSIERS : En JavaScript pur (SANS jQuery)
    window.onload = function() {
    	var explorateur_dirs = document.querySelectorAll('#explorateur-dossier .dir');
    	for( index=0; index < explorateur_dirs.length; index++ ) 
    	{
    	  explorateur_dirs[index].addEventListener('click', function(ev){ opencloseSubDir(this); ev.stopPropagation(); }, false);
    	}
    };
    function opencloseSubDir( dossier ) 
    {
      var ul = dossier.querySelector('ul');
      ul.style.display = (ul.style.display!='block')? 'block':'none';
     
    }
    // -----------------------------
    </script>
     
    <!-- ou AVEC jQuery -->
    <!--	<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> -->
    <script>
    /*
    // -----------------------------	
    // OUVRIR / FERMER les DOSSIERS : AVEC jQuery
    $(document).ready(function(){
    	$('#explorateur-dossier').on('click', '.dir', function(event){
    		$(this).find('ul').first().slideToggle();
    		event.stopPropagation(); // important
    	});
    });
    // -----------------------------
    */
    </script>
    <style>
    #explorateur-dossier ul { margin:0; padding:0; list-style:none outside none; }
    #explorateur-dossier .dir { position:relative; padding-left:20px; cursor:pointer; border:solid 0px #00FF00; }
    #explorateur-dossier .sub_dir { position:relative; padding-left:20px; cursor:pointer; display:none; border:solid 0px #FF0000;; }
    #explorateur-dossier .fil { position:relative; padding-left:20px; }
    #explorateur-dossier .dir:before { position:absolute; content:''; display:block; width:16px; height:16px; top:2px; left:0; background:url(images/folder.png) no-repeat; }
    #explorateur-dossier .fil:before { position:absolute; content:''; display:block; width:16px; height:16px; top:2px; left:0; background:url(images/file.png) no-repeat; }
    </style>
    </head>
    <body>
     
    <nav id="explorateur-dossier">
    <?php echo explore_dir_scan_html('../'); // ( ../ dossier parent) ?>
    </nav>
     
    </body>
    </html>
    Dernière modification par Invité ; 07/03/2018 à 11h53.

  9. #9
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 154
    Points : 57
    Points
    57
    Par défaut
    J'ai cela en message erreur :

    Parse error: syntax error, unexpected '<' in /var/www/sda/2/0/yakasolutions/wp-content/plugins/allow-php-in-posts-and-pages/allowphp.php(373) : eval()'d code on line 1
    J'ai essayer en modifiant la ligne la a la fin : <?php echo explore_dir_scan_html("../"); en mettant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php echo explore_dir_scan_html("../humour/diaporamas");
    <?php echo explore_dir_scan_html("../humour/diaporamas/");
    <?php echo explore_dir_scan_html("./humour/diaporamas");
    <?php echo explore_dir_scan_html("./humour/diaporamas/");
    Toujours la même message d'erreur.

    Merci pour votre aide

  10. #10
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Avec quel code ? celui de jreaux ? Il n'y qu'une 60aine de lignes dans son code, donc pour avoir une erreur à la ligne 373, il doit y avoir davantage de choses dans ton script.

    Sinon, vu que dans ton url, il y a "wp-content", ça veut dire que tu utilises WordPress a priori. Tu as essayé de chercher un plugin WP qui fait ce que tu veux, plutôt que de tout réécrire toi-même ?

  11. #11
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 154
    Points : 57
    Points
    57
    Par défaut
    J'ai chercher une extension wordpress qui fait ce que je veux mais pas trouver.
    j'utilise un plugin qui me permet de mettre du code php ou je veux est cela fonctionne pour afficher les photos presentent dans un repertoire, lister j'y arrive mais pas dans le répertoire que je veux mais impossible a les téléhargé ou les lire.

    Mille merci encore pour votre aide

  12. #12
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Là, au stade où tu en es, il va falloir que tu nous montres ton script si tu veux qu'on puisse t'aider à résoudre ton erreur.

  13. #13
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 154
    Points : 57
    Points
    57
    Par défaut
    J'ai trouver file away qui fonctionne comme extension wordpress mais je suis preneur aussi d'un code plus evolué.

    Merci par avance.

  14. #14
    Invité
    Invité(e)
    Par défaut
    re-Bonjour,

    J'ai modifié mon script (pour pouvoir utiliser JavaScript *, SANS jQuery).
    L'archive a donc aussi été modifiée (ainsi que mon message précédent).
    (* ça sert à ouvrir/fermer les dossiers)

    Partie modifiée :
    Code JavaScript : 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
    <script>
    // -----------------------------
    // OUVRIR / FERMER les DOSSIERS : En JavaScript pur (SANS jQuery)
    window.onload = function() {
    	var explorateur_dirs = document.querySelectorAll('#explorateur-dossier .dir');
    	for( index=0; index < explorateur_dirs.length; index++ ) 
    	{
    	  explorateur_dirs[index].addEventListener('click', function(ev){ opencloseSubDir(this); ev.stopPropagation(); }, false);
    	}
    };
    function opencloseSubDir( dossier ) 
    {
      var ul = dossier.querySelector('ul');
      ul.style.display = (ul.style.display!='block')? 'block':'none';
     
    }
    // -----------------------------
    </script>
    Pour cibler un dossier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <nav id="explorateur-dossier">
    <?php echo explore_dir_scan_html('../../mon-dossier/'); // ?>
    </nav>

  15. #15
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 154
    Points : 57
    Points
    57
    Par défaut
    Merci à tous pour votre aide.
    Un grand merci encore.

    @+ Filou

  16. #16
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 154
    Points : 57
    Points
    57
    Par défaut
    Bonsoir à tous,

    Je déterre un vieux sujet, j'ai bien le script mais je rencontre deux petit soucis :

    premier problème, les fichiers sont lister mais il y a le nom du répertoire qui apparait avant du style ./images/le nom du fichiers
    deuxième problème j'aurai aimer que cela mais en premier le dernier fichier mis dans le dossier.
    Toujours en ayant accès au fichier en cliquant dessus.

    je vous joint le code utilisé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?
    $folder = "images";
    $dossier = opendir($folder);
    while ($Fichier = readdir($dossier)) {
    if ($Fichier != "." && $Fichier != "..") {
    $nomFichier = $folder."/".$Fichier;
    echo "<a href='$nomFichier'>$nomFichier</a><br/>\n";////echo $nomFichier."<BR>";////
    }
    }
    closedir($dossier);
    						?>
    Merci par avance de votre aide.

    @+ Filou

  17. #17
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 905
    Points : 6 693
    Points
    6 693
    Par défaut
    Pour isoler le nom du fichier de son path, il y a basename.

    Pour connaître la date de modification d'un fichier: filemtime.

  18. #18
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 154
    Points : 57
    Points
    57
    Par défaut
    Merci de la réponse rapide, j'ai essayer ceci mais cela ne fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?
    $folder = "images";
    $dossier = opendir($folder);
    $time=filemtime($directory.'/'.$file);
    while ($Fichier = readdir($dossier)) {
    if ($Fichier != "." && $Fichier != "..") {
    $nomFichier = $folder."/".$Fichier;
    echo basename("/");
    }
    }
    closedir($dossier);
    Je suis novice dans le domaine.

    @+ Filou

  19. #19
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Tu as un problème avec des variables : tu utilises $file et $Fichier, $dossier et $folder en vrac. Et basename s'appliquer sur le chemin du fichier et pas sur "/"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lister un répertoire sans PHP sur serveur
    Par filou80 dans le forum Général Conception Web
    Réponses: 5
    Dernier message: 05/03/2018, 20h12
  2. lister un répertoire...
    Par airod dans le forum Général Python
    Réponses: 2
    Dernier message: 09/01/2006, 10h29
  3. Lister un répertoire
    Par ArkAng3 dans le forum MFC
    Réponses: 7
    Dernier message: 29/09/2005, 13h13
  4. Comment copier et lister un répertoire ?
    Par pepito62 dans le forum C++Builder
    Réponses: 2
    Dernier message: 03/05/2005, 19h14

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