Cacher des dossiers

Résolu
Bonjour à tous,

Mon problème est bête je ne doute pas, mais je trouve pas la fonction qui me permet de dire a php, tu ne m'affiches pas ces dossiers.
Voici mon code :
<div class="other">

<h2> Autres : </h2>

<?php
$dirname = './';
$dir = opendir($dirname);
while ($file = readdir($dir))
{
if($file <> "." AND $file<>".."){
$data = pathinfo($file);
$tout=$data['basename'];
$tout=$dirname."/".$tout;
$taille=filesize($tout);
if($taille>=1073741824)
{$taille=round($taille / 1073741824 * 100) / 100 . "Go";}
elseif ($taille>=1048576)
{$taille=round($taille / 1048576 * 100) / 100 . "Mo";}
elseif ($taille >=1024)
{$taille=round($taille / 1024 * 100) / 100 . "Ko";}
else
{$taille = $taille . "o";}

//if($doss=is_dir($tout)){
// $doss = ;}

echo "<a href='$file' >" . "<strong>" . $data['basename'] . "</strong>" . " " . "<em>" . " Modifié le : " . date ('d/m/y, ', filemtime($tout)) . "</em>" . "(" . $taille . ")" . "</a> <br>";

}

}

?>

</div>
C'est dans ce code que j'aimerai dire à php de ne pas m'afficher les sous-dossiers, en gros qu'il affiche que les fichiers.

Quelqu'un à une solution ? SVP URGENT.

Cordialement Unrealx6.
Un chat noir dans le noir, ça ne se voit pas . . .
99% des problèmes en informatique se situent entre le clavier et la chaise . . .

2 réponses

  1. Bonjour,

    faire un teste avec filetype($file) si = "dir" c'est un dossier sinon c'est un fichier

    ou alors utiliser la fonction is_dir($file) qui indique si c'est un dossier

    Cordialement
    1. Oui, je suis d'accord mais le is_dir indique juste en bool si c'est un dossier ou pas, après lui dire ouais tu l'affiches pas, ça je ne y arrive, je sais que c'est bête, mais trop de bourrage de crâne je suis perdu.
  2. Contributeur
    Salut Unrealx6,

    remplace :

    if($file <> "." AND $file<>".."){

    par

    if ( !is_dir($file) ) {

    https://www.php.net/manual/fr/function.is-dir.php

    "." et ".." sont aussi des "dossiers". Ils désignent respectivement sous Unix, le répertoire courant et le répertoire parent.

    Dal
    1. Oui je sais, je l'ai fait au dessus du code que je vous ai montrer ( j'ai juste fait d'une facon differente là) :

      <div class="content">

      <h2> Applications : </h2>

      <?php
      $dirname = './applis';
      $dir = opendir($dirname);
      while ($file = readdir($dir))
      {
      if (!is_dir($file)) {
      $data = pathinfo($file);
      $tout=$data['basename'];
      $tout=$dirname."/".$tout;
      $taille=filesize($tout);
      if($taille>=1073741824)
      {$taille=round($taille / 1073741824 * 100) / 100 . "Go";}
      elseif ($taille>=1048576)
      {$taille=round($taille / 1048576 * 100) / 100 . "Mo";}
      elseif ($taille >=1024)
      {$taille=round($taille / 1024 * 100) / 100 . "Ko";}
      else
      {$taille = $taille . "o";}

      echo "<a href='$dirname" . "/" . "$file' >" . "<strong>" .$data['filename'] . "</strong>" . " " . "<em>" ." Modifié le : " . date ('d/m/y, ', filemtime($tout)) . "</em>" . "(" . $taille . ")" . "</a> <br>";

      }

      }

      ?>

      </div>

      Je teste un truc, je vous redis.
    2. Merci dal !
      J'aurai pas du faire de deux façon diffèrente, je me suis compliquer la vie, avec le is_dir directement ça marche, dire que depuis hier je cherche >< ! Merci les gars !