Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/08/2008, 20h12   #1
Invité de passage
 
Inscription : août 2008
Messages : 2
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 2
Points : 1
Points : 1
Par défaut Afficher les répertoires, pas les fichiers

Bonjour,
je cherche à créer une page dans laquelle ne doivent s'afficher que les répertoires d'un répertoire donné et pas les fichiers s'y trouvant. Après quelques heures de recherche... j'abandonne et compte sur vos savoirs pour trouver une solution.
Voici le script en question :

Code :
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
 
<?php 
//    exploration_dossier();
// ouvre le rep
    $dp = opendir($pseudo);
    $i=0; 
    while ( $file = readdir($dp) ) 
    { 
// enleve les fichiers . et .. 
if ($file != '.' && $file != '..')
        { 
// on passe les datas dans un tableau 
$ListFiles[$i]=$file; 
$i++; 
    } 
    } 
closedir($dp); 
// tri par ordre decroissant 
    if(count($ListFiles)!=0) 
    { 
        if($list_tri == 'DESC') 
        { 
rsort($ListFiles); 
    } 
        else 
        { 
        sort($ListFiles); 
        } 
    } 
// affiche les fichiers par ordre alphabetique decroissant 
    $i=0; 
    while ( $i < count($ListFiles)) 
    {
        echo "<a href='voir-dossier.php?rep=";
        echo $ListFiles[$i]."'>";
        echo $ListFiles[$i]."</a><br />";
 
        $dossier = $ListFiles[$i] ;
        $i++; 
    }    
?>
Merci d'avance pour toute contribution.
alfred40 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2008, 20h48   #2
Rédacteur/Modérateur
 
Avatar de N1bus
 
Inscription : janvier 2003
Messages : 2 018
Détails du profil
Informations personnelles :
Âge : 47
Localisation : France, Charente Maritime (Poitou Charente)

Informations forums :
Inscription : janvier 2003
Messages : 2 018
Points : 1 992
Points : 1 992
Bonjour,

Voici la page d'index d'easyphp (une ancienne version) que j'avais modifié pour afficher mes sites :

Code :
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
 
      <?
$rep=opendir('.');
$i = 0;
while ($file = readdir($rep)) {
 if($file != '..' && $file !='.' && $file !=''){ 
  if (is_dir($file)){
        $array[$i] = $file ;   // on met les sites dans 1 tableau
        $i ++;}
 }
}
// tri du tableau => ordre alpha
sort($array);
$x = count($array);
// affichage des sites par ordre alphabetique
for ($i = 0; $i <= $x -1; $i++) {
    echo "&nbsp;&nbsp;&nbsp;&nbsp;";
    echo "<img src=\"/images_easyphp/dossier.gif\" width=\"15\" height=\"12\">&nbsp;";
    echo "<a href=\"".$array[$i]."/\" target=_blank class=text1>".$array[$i]."</a>";
    echo "<br>";
}
//
closedir($rep);
clearstatcache();
?>
En la modifiant un peu tu devrais pouvoir y arriver
N1bus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2008, 20h53   #3
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 383
Points : 16 383
Il faut utiliser is_dir()

Code :
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
<?php
// exploration_dossier();
// ouvre le rep
$rep = "test";
$dp = opendir($rep);
 
while ( $file = readdir($dp) )
{
// enleve les fichiers . et ..
if (is_dir($rep . '/' . $file) && $file != '.' && $file != '..')
{
 
// on passe les datas dans un tableau
$ListFiles[] = $file;
}
}
closedir($dp);
// tri par ordre decroissant
if($ListFiles)
{
if($list_tri == 'DESC')
{
rsort($ListFiles);
}
else
{
sort($ListFiles);
}
}
// affiche les fichiers par ordre alphabetique decroissant
if (is_array($ListFiles)) {
foreach ($ListFiles as $dirname) {
 
echo "<a href='voir-dossier.php?rep=";
echo $dirname ."'>";
echo $dirname."</a><br />";
}
}
?>
Au passage, tu peux regarder comment je créé et lit le tableau sans avoir recours a un vilain $i incrementé.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2008, 21h40   #4
Membre du Club
 
Inscription : juillet 2008
Messages : 39
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 39
Points : 43
Points : 43
Code php :
1
2
3
4
5
 
function _is_dir($file) {
  return is_dir($file) && $file != '.' && $file != '..';
}
$folders = array_filter(scandir($folder), '_is_dir');
ddong est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2008, 23h17   #5
Invité de passage
 
Inscription : août 2008
Messages : 2
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 2
Points : 1
Points : 1
Merci pour vos réponses.... La solution de Sabotage me convient parfaitement.. je progresse tout tout doucement en php... et c'est grâce à vous
merci encore
alfred40 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h39.


 
 
 
 
Partenaires

Hébergement Web