Affichier ce que contient un repertoire et faire un lien vers les fichier corespondant

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 297 fois - Téléchargée 28 fois

Contenu du snippet

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 / Exemple :


//////-------------- 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 ;)

A voir également

Ajouter un commentaire

Commentaires

Edok
Messages postés
3
Date d'inscription
dimanche 7 décembre 2003
Statut
Membre
Dernière intervention
2 juillet 2004
-
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.
aze555666
Messages postés
208
Date d'inscription
mardi 13 avril 2004
Statut
Membre
Dernière intervention
26 janvier 2009
-
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.
defkrie
Messages postés
438
Date d'inscription
vendredi 20 septembre 2002
Statut
Membre
Dernière intervention
20 novembre 2004
-
je suis d'accord pour le niveau
cs_GRenard
Messages postés
1663
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
30 juillet 2008
1 -
Mauvaise programmation (utilise isset !) J'ai des erreurs NOTICE à l'execution
Ce n'est pas un niveau 3 comme code... plutot niveau 2.
webkiller51
Messages postés
79
Date d'inscription
samedi 23 août 2003
Statut
Membre
Dernière intervention
10 janvier 2006
-
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.