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 !

AFFICHIER CE QUE CONTIENT UN REPERTOIRE ET FAIRE UN LIEN VERS LES FICHIER CORESPONDANT


Information sur la source

Catégorie :Divers Niveau : Expert Date de création : 28/06/2004 Vu : 2 786

Note :
4,5 / 10 - par 6 personnes
4,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

Description

Salut se code a ete pris d'un site et modifier par moi(correction de toute les erreur)
Se script permet d'afficher ce que contient un repertoire.Tres utile pour faire des site de telechargement..Si vous avez un site et ke vous desirez un cette page en php coupler wml demandez moi ici :)




 

Source

  • //////-------------- index.php -------------\\\\\\\\
  • <?php
  • function listeFileTri ($path,$inf,$tri)
  • {
  • $Array = array();
  • $nbFichier = 0;
  • if ($dir = @opendir($path))
  • {
  • while($file = readdir($dir))
  • {
  • if ($file !="." && $file != "index.php")
  • {
  • if (is_file($path."/".$file))
  • {
  • $Array[] = "$file";
  • $nbFichier++;
  • }
  • }
  • }
  • }
  • closedir($dir);
  • if ($nbFichier!=0)
  • {
  • $num = 1;
  • $cfg_num = 5;//Nombre de chiffres dans la barre de navigation
  • $nbpp = 10;//nombre de résultats par "page"
  • if (!isset($inf)) $inf = 0;// var. pour la navigation dans le répertoire
  • $sup = $inf + $nbpp;
  • print ("&nbsp;Il y a $nbFichier fichiers");
  • print ("$path<br><br>\n");
  • if($tri == 'DESC')
  • {
  • rsort($Array);
  • }
  • else
  • {
  • sort($Array);
  • }
  • $Max = count($Array);
  • for($i = 0; $i <$Max; $i++)
  • {
  • if (($num>$inf)&&($num<=$sup))
  • {
  • echo '&nbsp; -&nbsp;<a href="'.$Array[$i].'">'.$Array[$i].'</a><br/>';
  • }
  • $num++;
  • }
  • print ("<br>\n");
  • if ($inf >= ($cfg_num * $nbpp))
  • {
  • $compteur_fin = ($inf / $nbpp) + 1;
  • $compteur_deb = $compteur_fin - $cfg_num + 1;
  • }
  • else
  • {
  • $compteur_deb = 1;
  • $compteur_fin = (int)($nbFichier / $nbpp);
  • if (($nbFichier % $nbpp) != 0)
  • {
  • $compteur_fin++;
  • }
  • if ($compteur_fin > $cfg_num)
  • {
  • $compteur_fin = $cfg_num;
  • }
  • }
  • for ($compteur = $compteur_deb; $compteur <= $compteur_fin; $compteur++)
  • {
  • if ($compteur == ($inf / $nbpp) + 1)
  • {
  • $barre .= "<font> <b>".$compteur."</b> </font>";
  • }
  • else
  • {
  • $barre .= " <A HREF='test.php?inf=";
  • $barre .= (($compteur-1)*$nbpp);
  • $barre .= "'>".$compteur."</A> ";
  • }
  • }
  • print ("[$barre]\n");
  • print ("<br>\n");
  • if ($inf >= $nbpp)
  • {
  • // Début
  • echo "<A HREF='index.php?inf=" . (0) . "'><<</A> ";
  • // Précédent
  • echo "<A HREF='index.php?inf=".($inf-$nbpp)."'><</A>";
  • }
  • else
  • {
  • // Début sans lien
  • echo "<< ";
  • // echo "|";
  • // Précédent sans lien
  • echo "<";
  • }
  • print (" - ");
  • if ($inf + $nbpp < $nbFichier)
  • {
  • // Suivant
  • echo "<A HREF='index.php?inf=".($inf+$nbpp)."'>></a></A> ";
  • // Fin
  • $pos = ($nbFichier - ($nbFichier % $nbpp));
  • if (($nbFichier % $nbpp) == 0) $pos = $pos - $nbpp;
  • echo "<A HREF='index.php?inf=" . ($pos) . "'>>></A>";
  • }
  • else
  • {
  • // Suivant
  • echo "> ";
  • // Fin
  • $pos = ($nbFichier - ($nbFichier % $nbpp));
  • if (($nbFichier % $nbpp) == 0) $pos = $pos - $nbpp;
  • echo ">>";
  • }
  • print ("<br>\n");
  • }
  • else
  • {
  • print ("Il n'y a pas de fichiers dans le répertoire <b>$path</b>\n");
  • }
  • }
  • // paramètre ($tri) : "ASC" ou "DESC" (A-Z ou Z-A) --> ASC par défaut
  • listeFileTri(".",$inf,$tri);
  • ?>
//////-------------- index.php -------------\\\\\\\\

<?php

function listeFileTri ($path,$inf,$tri)
{
    $Array = array();
    $nbFichier = 0;

    if ($dir = @opendir($path))
    {
        while($file = readdir($dir))
        {
            if ($file !="." && $file != "index.php")
            {
                if (is_file($path."/".$file))
                {
                    $Array[] = "$file";
                    $nbFichier++;
                }
            }
        }
    }
    closedir($dir);

    if ($nbFichier!=0)
    {
        $num = 1;
        $cfg_num = 5;//Nombre de chiffres dans la barre de navigation
        $nbpp = 10;//nombre de résultats par "page"
        if (!isset($inf)) $inf = 0;// var. pour la navigation dans le répertoire
        $sup = $inf + $nbpp;

        print ("&nbsp;Il y a $nbFichier fichiers");
        print ("$path<br><br>\n");

        if($tri == 'DESC')
        {
            rsort($Array); 
        }
        else
        { 
            sort($Array); 
        } 

        $Max = count($Array);

        for($i = 0; $i <$Max; $i++)
        {
            if (($num>$inf)&&($num<=$sup))
            {
		echo '&nbsp; -&nbsp;<a href="'.$Array[$i].'">'.$Array[$i].'</a><br/>';
            }
            $num++;
        } 

        print ("<br>\n");

 
        if ($inf >= ($cfg_num * $nbpp))
        {
            $compteur_fin = ($inf / $nbpp) + 1;
            $compteur_deb = $compteur_fin - $cfg_num + 1;
        }
        else
        {
            $compteur_deb = 1;
            $compteur_fin = (int)($nbFichier / $nbpp);

            if (($nbFichier % $nbpp) != 0)
            { 
                $compteur_fin++;
            }

            if  ($compteur_fin > $cfg_num)
            {
                $compteur_fin = $cfg_num;
            }
        }

        for ($compteur = $compteur_deb; $compteur <= $compteur_fin; $compteur++)
        {
            if ($compteur == ($inf / $nbpp) + 1)
            {
                $barre .= "<font> <b>".$compteur."</b> </font>";
            }
            else
            {
                $barre .= " <A HREF='test.php?inf=";
                $barre .= (($compteur-1)*$nbpp);
                $barre .= "'>".$compteur."</A> ";
            }
        }
        print ("[$barre]\n");
        print ("<br>\n");

        if ($inf >= $nbpp) 
        {
            // Début
            echo "<A HREF='index.php?inf=" . (0) .  "'><<</A> ";
            // Précédent
            echo "<A HREF='index.php?inf=".($inf-$nbpp)."'><</A>";
        }
        else
        {
            // Début sans lien
            echo "<< ";
            //        echo "|";
            // Précédent sans lien
            echo "<";
        }
        print (" - ");

          if ($inf + $nbpp < $nbFichier) 
        {
            // Suivant
            echo "<A HREF='index.php?inf=".($inf+$nbpp)."'>></a></A> ";

            // Fin
            $pos = ($nbFichier - ($nbFichier % $nbpp));
            if (($nbFichier % $nbpp) == 0) $pos = $pos - $nbpp;
            echo "<A HREF='index.php?inf=" . ($pos) . "'>>></A>";
        }
        else
        {
            // Suivant
            echo "> ";

            // Fin
            $pos = ($nbFichier - ($nbFichier % $nbpp));
            if (($nbFichier % $nbpp) == 0) $pos = $pos - $nbpp;
            echo ">>";
        }
        print ("<br>\n");
    }
    else
    {
        print ("Il n'y a pas de fichiers dans le répertoire <b>$path</b>\n");
    }
}

// paramètre  ($tri) : "ASC" ou "DESC" (A-Z ou Z-A) --> ASC par défaut

listeFileTri(".",$inf,$tri);

?>

Conclusion

J'attend vos nombreux commentaire ;)
 

Commentaires et avis

signaler à un administrateur
Commentaire de defkrie le 28/06/2004 16:32:26

bof vue et revue seul differe la maniere dont tu exploites les infos du répertoire..

signaler à un administrateur
Commentaire de webkiller51 le 28/06/2004 18:43:23

Pas mal ca aurait été sympa de mettre les repertoires et quelques infos sur les différents fichiers du répertoire dans lequel on se trouve...

T'aurai pu ajouter un tite fonction stat() ou d'autres trucs comme ca pour agrémenter :)

Voilà
@++ MeCKo0L           6/10

signaler à un administrateur
Commentaire de GRenard le 28/06/2004 19:16:05

Mauvaise programmation (utilise isset !) J'ai des erreurs NOTICE à l'execution
Ce n'est pas un niveau 3 comme code... plutot niveau 2.

signaler à un administrateur
Commentaire de defkrie le 29/06/2004 18:43:58

je suis d'accord pour le niveau

signaler à un administrateur
Commentaire de aze555666 le 30/06/2004 16:42:02

ben moi, je trouve que le code est beaucoup trop long!!! je viens de deposer un petit webftp, dont,bien sur, l'affichage des fichiers contenus dans un dossier est l'une des multiples fonctions, et le code de cette partie est tres court par rapport à celui la. pour faire un verritable afficheur de fichier, avec le nom, le taille, et tous les autres attributs des fichiers, je te conseille
http://www.izidoo.com/content/article.php?artID=181
http://www.izidoo.com/content/article.php?artID=182
http://www.izidoo.com/content/article.php?artID=183
http://www.izidoo.com/content/article.php?artID=184,
il y a tout ce qu'il faut.

signaler à un administrateur
Commentaire de Edok le 02/07/2004 16:56:50

Notice: Undefined variable: inf in *\index.php on line 147

Notice: Undefined variable: barre in *\index.php on line 88

---

Idée bonne, quelques bugs, et manque de composants (taille du fichiers & attributs & îcone) comme l'a très bien dit aze555666.

A revisonner pour les bugs et pour les ajouts d'informations, sinon dans l'ensemble c'est un bon code.
Bonne chance pour ta continuation.

Amicalement, DimS.

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,234 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.