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

EDI, CMS, Outils, Scripts et API PHP Discussion :

[Forum] Script diaporama photo avec fonction "glob"


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2009
    Messages : 85
    Points : 40
    Points
    40
    Par défaut [Forum] Script diaporama photo avec fonction "glob"
    Bonjour à tous

    Etant donné les très nombreuses rubriques du site , j'espère avoir posté au bon endroit .

    Sinon je m'appelle Marc , je viens de Suisse au bord du lac Léman .

    Mon niveau PHP est vraiment débutant , je m'y intéresse pour développer un site internet d'un restaurant Italien .

    Je voudrais créer un diaporama photo sur une des pages du site.

    Seulement voilà , je bute sur une chose que je ne comprends pas , je vous résume ce que j'ai compris :

    - Nous disposons d'un répertoire pour les photos .

    - Un autre pour les miniatures photos/miniatures.

    Le but étant que la fonction Glob aille chercher les photos dans le répertoire photos/miniatures et les affiches les une à côté des autres .

    Je passe le fait de préciser à Glob quelle extension prendre .

    - Glob renvoie un array , donc si je reprends le cours de m@teo , je pense que ce sera un array du style comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
    $files = array ("premièrephoto", "deuxièmephoto", "troisièmephoto", "quatrièmephoto", "cinquièmephoto");
    ?>
    Vient ensuite la lecture de cet array avec foreach :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    foreach($files as $image)
    {$image = preg_replace('`photos/miniatures/(.+)`','$1',$image);
            $nomimage = preg_replace('`(.+)\..*`', '$1', $image);
    Et ensuite on affiche les photos :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <div class="liste_image"><a href="?image='.$image.'"><img src="photos/miniatures/'.$image.'" alt="'.$nomimage.'" title="'.$nomimage.'" /></a><br />
    '.$nomimage.'</div>
    Donc si je comprends bien , on mettra autant de ligne comme celle là qu'il y a des photos , donc si je reprends l'exemple plus haut , cela donnera cela ( étant donné qu'il y 5 photos :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    echo '      <div class="liste_image"><a href="?image='.$image.'"><img src="photos/miniatures/'.$image.'" alt="'.$nomimage.'" title="'.$nomimage.'" /></a><br />
                            '.$nomimage.'</div>
    echo '      <div class="liste_image"><a href="?image='.$image.'"><img src="photos/miniatures/'.$image.'" alt="'.$nomimage.'" title="'.$nomimage.'" /></a><br />
                            '.$nomimage.'</div>
    echo '      <div class="liste_image"><a href="?image='.$image.'"><img src="photos/miniatures/'.$image.'" alt="'.$nomimage.'" title="'.$nomimage.'" /></a><br />
                            '.$nomimage.'</div>
    echo '      <div class="liste_image"><a href="?image='.$image.'"><img src="photos/miniatures/'.$image.'" alt="'.$nomimage.'" title="'.$nomimage.'" /></a><br />
                            '.$nomimage.'</div>
    echo '      <div class="liste_image"><a href="?image='.$image.'"><img src="photos/miniatures/'.$image.'" alt="'.$nomimage.'" title="'.$nomimage.'" /></a><br />
                            '.$nomimage.'</div>
    On arrive à ce que je ne comprends pas , habituellement avec l'affichage d'un array , on donne le nom de la variable suivi de la position , supposons que nous voulions afficher la deuxième photo , on ferait comme ceci :

    Pourquoi ne le fait-on pas dans les 5 lignes d'echo ?

    J'espère avoir été clair

    Merci d'avance de votre aide !!


    PS : Je sais que la fonction Glob ne fonctionne plus , mais j'aurais voulu comprendre le script, histoire de curiosité .

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 320
    Points : 311
    Points
    311
    Par défaut
    Salut,

    C'est en fait la syntaxe de foreach.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach($files as $image)
    {$image = preg_replace('`photos/miniatures/(.+)`','$1',$image);
            $nomimage = preg_replace('`(.+)\..*`', '$1', $image);
    Ton tableau, c'est $file.

    Tu pourrais faire

    pour avoir la troisième photo.

    Le foreach dit "Pour chaque élément de $file, on va faire un élément qui s'appelle $image"

    Cette variable image va successivement prendre les valeurs de $file[0], $file[1], $file[2] etc... jusqu'à ce qu'on ait fait tous les éléments du tableau $file.

    J'espère que j'ai été compréhensible...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2009
    Messages : 85
    Points : 40
    Points
    40
    Par défaut
    Salut , je te remercie de ton intervention

    Donc un foreach remplace ce script par exemple ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    // On crée notre array $prenoms
    $prenoms = array ("François", "Michel", "Nicole", "Véronique", "Benoît");
     
    // Puis on fait une boucle pour tout afficher :
    for ($numero = 0; $numero < 5; $numero++)
    {
        echo $prenoms[$numero]; // affichera $prenoms[0], $prenoms[1] etc...
        echo "<br />"; // pour aller à la ligne
    }
    ?>
    Dans mon cas , le fait que foreach donnes les valeurs retournés par Glob à la variable $image , il suffirait donc d'afficher une seule ligne comme le script ci-dessous au lieu de 5 ( dans le cas avec 5 photos dans le répertoire ) ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <div class="liste_image"><a href="?image='.$image.'"><img src="photos/miniatures/'.$image.'" alt="'.$nomimage.'" title="'.$nomimage.'" /></a><br />
    '.$nomimage.'</div>
    Merci encore !!

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2009
    Messages : 85
    Points : 40
    Points
    40
    Par défaut
    Encore une petite chose , je viens d'essayer ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php 
     
    $dir = 'photos/miniatures/*.{jpg,jpeg,JPG,JPEG,gif,png}';
    $files = glob($dir,GLOB_BRACE);
     
    echo $file[2];
     
     
    ?>
    Il me marque : Notice: Undefined variable: file in C:\wamp\www\I Giardini\mariages.php on line 39

    Et pourtant , le répertoire miniatures se trouve bien dans le répertoire photos et sont bien des images en format jpg ....

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2009
    Messages : 85
    Points : 40
    Points
    40
    Par défaut
    Bon bon bon , on vient de me faire part de l'erreur .

    La variable , c'est $files et non pas $file ...

    Je vais essayer de corriger ça .

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2009
    Messages : 85
    Points : 40
    Points
    40
    Par défaut
    Bonjour à tous

    Je me permets un petit up concernant le message #3 .

    Merci d'avance !

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

Discussions similaires

  1. Script diaporama avec chiffre
    Par webide67 dans le forum Intégration
    Réponses: 2
    Dernier message: 06/06/2010, 10h44
  2. message indefined index avec script upload photo
    Par monlou dans le forum Langage
    Réponses: 21
    Dernier message: 03/04/2010, 06h36
  3. Lancer un script (et pas une fonction) avec un callback
    Par braxxe dans le forum Interfaces Graphiques
    Réponses: 4
    Dernier message: 26/03/2009, 11h44
  4. Réponses: 1
    Dernier message: 07/02/2008, 21h40
  5. Script Shell avec fonction FTP
    Par blackstreet dans le forum Distributions
    Réponses: 1
    Dernier message: 18/09/2007, 09h33

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