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 les images d'un dossier sur plusieurs pages [PHP 4]


Sujet :

Langage PHP

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2007
    Messages
    496
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 496
    Points : 467
    Points
    467
    Par défaut Lister les images d'un dossier sur plusieurs pages
    Salut je cherche à lister le contenu d'un dossier contenant des images jpg et de les afficher avec une pagination car il y en a plus de 300.

    Est ce que vous pouvez m'indiquer la démarche à suivre ?

    J'ai trouver cette source sur le net

    Code : 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
        <?php
     
         echo "<table border=0 align=\"center\">";
     
         //URL du dossier des images (ex : http://monsite.com/images/ )
         $racine = "http://www.monsite.fr";
     
         // Votre dossier d'images, relativement à la page.
         $dossier = opendir(".");
     
         // variable d'itération, afin de n'afficher que x images par page
         $i = 0;
     
         // remplacer 15 par le nombre d'images par page souhaité
         $nbimages = 15;
     
         //si on doit commencer au fichier x : autrement, on commence au fichier 2 (les 0 et 1 sont les répertoires parent et courant)
         $debut = ($_GET["debut"]) ? $_GET["debut"] : 2;
         $i+=$debut;
     
         while ($Fichier = readdir($dossier))
         {
         $files[] = $Fichier;
         }
         //on range par ordre alphabétique
         sort($files);
     
         while ($files[$i] && ($i)<($nbimages+$debut))
         {
         if ( $files[$i] != ".." && $files[$i] != "." && $files[$i] != "" && ereg("(.gif)",$files[$i]) )
         {
         echo '<tr>
         <td>
         <img src="'.$files[$i].'" border=0 >
         </td>
         <td>
         <font face=Verdana size=1>[img]'.$racine.'/'.$files[$i].'[/img]</font>
         </td>
         </tr>';
         }
         $i++;
     
     
         }
         if($files[$i]!="")
         {
         echo "<tr>
         <td colspan=2 align='right'><a href='$PHP_SELF?debut=$i'>Suivants</a></td>
         </tr>";
         }
     
         closedir($dossier);
     
         ?>
    Mais elle ne fonctionne que si le dossier contient du gif.

    J'ai tester en changeant le ereg("(.gif)" en ereg("(.jpg)" mais aucun résultat même pas un message d'erreur juste une page blanche !


    Avant de poster faites une recherche et/ou consultez la FAQ.

    Un sujet est résolu n'oubliez pas le tag

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2007
    Messages
    496
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 496
    Points : 467
    Points
    467
    Par défaut
    Bon ben du coup je me sens un peu bête je vient de voir ou se trouve l'erreur après plus d'1 heure de casse tête

    La page du script ne se trouvant pas au même endroit que le dossier d'image il fallait simplement modifier (dans mon cas)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $dossier = opendir(".");
    Par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $dossier = opendir("../images/");


    Avant de poster faites une recherche et/ou consultez la FAQ.

    Un sujet est résolu n'oubliez pas le tag

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2007
    Messages
    496
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 496
    Points : 467
    Points
    467
    Par défaut
    Bon en fin de compte ce n'est pas encore résolu tout à fait car j'arrive bien à avoir la pagination toutes les 15 images et j'ai plusieurs liens tout en bas pour passer à la page suivante

    Par contre lorsque je clic sur un numéro de page, sur suivant ou même sur précédent c'est toujours la première page qui s'affiche

    Voila le dernier code que j'ai fait

    Code : 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
    <?php
    session_start();
     
         //URL de la racine de l emplacement des images
        $racine = "http://www.monsite.fr";
     
        // On indique au script ou se trouve les images a lister par rapport a l emplacement de ce script
        $dir = opendir("../../images/");
     
         // remplacer 15 par le nombre d'images par page souhaité
         $nbimages = 50;
     
         // variable d'itération, afin de n'afficher que x images par page
         $i = 0;
     
    // On donne le nom du dossier ou sont présente les images par rapport au script en précisant l extension des fichier à lister
    $images_sur_le_serveur = glob("../../images/*.jpg");
     
    // On compte le nombre d image
    $combien_d_images_sur_le_serveur = count($images_sur_le_serveur);
     
     
    // On déclare la pagination
    $page = isset($_GET['page']) ? intval($_GET['page']) : 1;
    $debut = $nbimages * ($page - 1);
     
         while ($Fichier = readdir($dir))
         {
         $files[] = $Fichier;
         }
     
         while ($files[$i] && ($i)<($nbimages+$page))
         {
         if ( $files[$i] != ".." && $files[$i] != "." && $files[$i] != "" && ereg("(.jpg)",$files[$i]) )
         {
     
         echo "<p align=\"center\"><img src='$racine/$files[$i]' border=\"0\"></p><p>&nbsp;</p>";
     
         }
         $i++;
     
     
         }
     
    echo '<p align="center">';
     
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    //////////////////////////////////////////////////////Pagination des résultats/////////////////////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     
        $derniere_page = ceil($combien_d_images_sur_le_serveur / $nbimages);
        if ($page > 1) {
            echo '<a href="http://www.monsite.fr/up/test.php?page=' . ($page - 1) . '" >Précédent</a>';
        }
     
    // MAX_NB_PAGE est égal au nombre de lien vers les pages a afficher au maximum (ex: pour 10 pages a afficher il y aura <<<< - 1 - 2 - 3 - 4 - 5 - 6 - >>>>)
    define('MAX_NB_PAGES', 6); // Nombre maximal de pages apparaissant pour la navigation    
    for ($i = max(1, min(max($page - MAX_NB_PAGES / 2, 1), $derniere_page - MAX_NB_PAGES)), $j = 0; $j <= MAX_NB_PAGES && $i <= $derniere_page; $i++, $j++) {
     
     if ($i == $page) {
            if ($page > 1) {echo '&nbsp;-&nbsp;'; }
                echo '' . $i . '';
            } else {
                echo '&nbsp;-&nbsp;<a href="http://www.monsite.fr/up/test.php?page=' . $i . '" >' . $i . '</a>';
            }
        }
        if ($page < $derniere_page) {
            echo '&nbsp;-&nbsp;<a href="http://www.monsite.fr/up/test.php?page=' . ($page + 1) . '" >Suivant</a>';
        }
     
     
        echo '</p>';
     
         closedir($dir);
         ?>


    Avant de poster faites une recherche et/ou consultez la FAQ.

    Un sujet est résolu n'oubliez pas le tag

  4. #4
    Membre actif Avatar de elcoyotos
    Homme Profil pro
    Amateur passionné
    Inscrit en
    Octobre 2006
    Messages
    490
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Amateur passionné

    Informations forums :
    Inscription : Octobre 2006
    Messages : 490
    Points : 294
    Points
    294
    Par défaut
    Salut,

    Ton script m'intéresse alors je me suis penché dessus ....
    Le code ci-dessous à l'air de fonctionner correctement :

    Code : 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
     
    <?php
     
         //URL de la racine de l emplacement des images
        $racine = "http://www.monsite.com";
     
        // On indique au script ou se trouve les images a lister par rapport a l emplacement de ce script
        $dir = opendir("photos/Divers/humour/");
     
         // remplacer 10 par le nombre d'images par page souhaité
         $nbimages = 10;
     
     
    // On donne le nom du dossier ou sont présente les images par rapport au script en précisant l extension des fichier à lister
    $images_sur_le_serveur = glob("photos/Divers/humour/*.jpg");
     
    // On compte le nombre d image
    $combien_d_images_sur_le_serveur = count($images_sur_le_serveur);  
     
    echo '<p align="center">';
     
    // On déclare la pagination
    $page = isset($_GET['page']) ? intval($_GET['page']) : 1;
    if ($_GET['page'] == "") { $_GET['page'] = 1; }
    $debut = ($_GET['page'] - 1)  * $nbimages + 2;
    $i = $debut;
    $j = 1;
     
         while ($Fichier = readdir($dir))
         {
         $files[] = $Fichier;
     
         }
     
         while ($i >= $debut and $j <= $nbimages)
         {
             if ( $files[$i] != ".." && $files[$i] != "." && $files[$i] != "" && ereg("(.jpg)",$files[$i]) )
             {
     
             echo "<img src='photos/Divers/humour/$files[$i]' border=\"0\">";
     
             }
         $i++;
         $j++;
     
         }
     
     echo '</p>';
     
     
     
     
    echo '<p align="center">';
     
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    //////////////////////////////////////////////////////Pagination des résultats/////////////////////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     
        $derniere_page = ceil($combien_d_images_sur_le_serveur / $nbimages);
        if ($page > 1) {
            echo '<a href="'.$_SERVER['PHP_SELF'].'?page=' . ($page - 1) . '" >Précédent</a>';
        }
     
    // MAX_NB_PAGE est égal au nombre de lien vers les pages a afficher au maximum (ex: pour 10 pages a afficher il y aura <<<< - 1 - 2 - 3 - 4 - 5 - 6 - >>>>)
    define('MAX_NB_PAGES', 10); // Nombre maximal de pages apparaissant pour la navigation    
    for ($i = max(1, min(max($page - MAX_NB_PAGES / 2, 1), $derniere_page - MAX_NB_PAGES)), $j = 0; $j <= MAX_NB_PAGES && $i <= $derniere_page; $i++, $j++) {
     
     if ($i == $page) {
            if ($page > 1) {echo '&nbsp;-&nbsp;'; }
                echo '' . $i . '';
            } else {
                echo '&nbsp;-&nbsp;<a href="'.$_SERVER['PHP_SELF'].'?page=' . $i . '" >' . $i . '</a>';
            }
        }
        if ($page < $derniere_page) {
            echo '&nbsp;-&nbsp;<a href="'.$_SERVER['PHP_SELF'].'?page=' . ($page + 1) . '" >Suivant</a>';
        }
     
     
        echo '</p>';
     
         closedir($dir);
    ?>
    Écoute, sinon ta langue te perdra (proverbe Navajo)

  5. #5
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2007
    Messages
    496
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 496
    Points : 467
    Points
    467
    Par défaut
    Salut elcoyotos et merci pour ton aide, cela fonctionne et il manque juste un lien pour aller directement à la dernière page et un autre pour aller directement a la première page et c'est tout bon

    EDIT : Voila le code final pour parfaire le tout avec toutes les choses dont j'ai besoin

    Code : 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
    <?php
     
        // On indique au script ou se trouve les images a lister par rapport a l emplacement de ce script
        $dir = opendir("photos/Divers/humour/");
     
         // remplacer 10 par le nombre d'images par page souhaité
         $nbimages = 10;
     
     
    // On donne le nom du dossier ou sont présente les images par rapport au script en précisant l extension des fichier à lister
    $images_sur_le_serveur = glob("photos/Divers/humour/*.jpg");
     
    // On compte le nombre d image
    $combien_d_images_sur_le_serveur = count($images_sur_le_serveur) + 2;  
     
    echo '<p align="center">';
     
    // On déclare la pagination
    $page = isset($_GET['page']) ? intval($_GET['page']) : 1;
    if ($_GET['page'] == "") { $_GET['page'] = 1; }
    $debut = ($_GET['page'] - 1)  * $nbimages + 2;
    $i = $debut;
    $j = 1;
     
         while ($Fichier = readdir($dir))
         {
         $files[] = $Fichier;
     
         }
     
         while ($i >= $debut and $j <= $nbimages)
         {
             if ( $files[$i] != ".." && $files[$i] != "." && $files[$i] != "" && ereg("(.jpg)",$files[$i]) )
             {
     
             echo "<img src='photos/Divers/humour/$files[$i]' border=\"0\">";
     
             }
         $i++;
         $j++;
     
         }
     
     echo '</p>';
     
     
     
     
    echo '<p align="center">';
     
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    //////////////////////////////////////////////////////Pagination des résultats/////////////////////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     
        $derniere_page = ceil($combien_d_images_sur_le_serveur / $nbimages);
        if ($page > 1) {
            echo '<a href="'.$_SERVER['PHP_SELF'].'" >Début</a>&nbsp;-&nbsp;<a href="'.$_SERVER['PHP_SELF'].'?page=' . ($page - 1) . '" >Précédent</a>';
        }
     
    // MAX_NB_PAGE est égal au nombre de lien vers les pages a afficher au maximum (ex: pour 10 pages a afficher il y aura <<<< - 1 - 2 - 3 - 4 - 5 - 6 - >>>>)
    define('MAX_NB_PAGES', 10); // Nombre maximal de pages apparaissant pour la navigation    
    for ($i = max(1, min(max($page - MAX_NB_PAGES / 2, 1), $derniere_page - MAX_NB_PAGES)), $j = 0; $j <= MAX_NB_PAGES && $i <= $derniere_page; $i++, $j++) {
     
     if ($i == $page) {
            if ($page > 1) {echo '&nbsp;-&nbsp;'; }
                echo '' . $i . '';
            } else {
                echo '&nbsp;-&nbsp;<a href="'.$_SERVER['PHP_SELF'].'?page=' . $i . '" >' . $i . '</a>';
            }
        }
        if ($page < $derniere_page) {
            echo '&nbsp;-&nbsp;<a href="'.$_SERVER['PHP_SELF'].'?page=' . ($page + 1) . '" >Suivant</a>&nbsp;-&nbsp;<a href="'.$_SERVER['PHP_SELF'].'?page=' . ($derniere_page) . '" >Fin</a>';
        }
     
     
        echo '</p>';
     
         closedir($dir);
    ?>


    Avant de poster faites une recherche et/ou consultez la FAQ.

    Un sujet est résolu n'oubliez pas le tag

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

Discussions similaires

  1. [Débutant] [WPF]Lister les images d'un dossier
    Par Hoplite-Studio dans le forum C#
    Réponses: 2
    Dernier message: 18/05/2012, 11h53
  2. Lister les images d'un dossier
    Par mr_samurai dans le forum MATLAB
    Réponses: 2
    Dernier message: 03/12/2007, 16h31
  3. [SQL] Afficher les résultats d'une requête sur plusieurs pages
    Par mealtone dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 07/09/2006, 13h20
  4. Réponses: 13
    Dernier message: 24/08/2006, 13h05
  5. Pb avec code source "lister les images d'un dossier"
    Par Mimisator dans le forum Langage
    Réponses: 2
    Dernier message: 19/10/2005, 15h25

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