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

PHP & Base de données Discussion :

Classement Alphanumerique sur PHP


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2018
    Messages : 8
    Par défaut Classement Alphanumerique sur PHP
    Salut à tous,
    Je ne suis pas un spécialiste PHP, mais je me débrouille comme je peux.
    J'utilise depuis quelques temps un script PHP qui me permet de créer automatiquement une galerie d'images sur une page.

    exemple:
    https://www.blue-shaker.com/gc/Vogue/

    Voici le bout de code que je met dans la partie <body>

    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
    <?php 
      // Image extensions
      $image_extensions = array("jpeg","JPEG","jpg","JPG","png","PNG","gif","GIF");
     
      // Target directory
      $dir = 'images/';
      if (is_dir($dir)){
     
       if ($dh = opendir($dir)){
        $count = 1;
     
        // Read files
        while (($file = readdir($dh)) !== false){
     
         if($file != '' && $file != '.' && $file != '..'){
     
          // Thumbnail image path
          $thumbnail_path = "images/".$file;
     
          // Image path
          $image_path = "images/".$file;
     
          $thumbnail_ext = pathinfo($thumbnail_path, PATHINFO_EXTENSION);
          $image_ext = pathinfo($image_path, PATHINFO_EXTENSION);
     
          // Check its not folder and it is image file
          if(!is_dir($image_path) && 
             in_array($thumbnail_ext,$image_extensions) && 
             in_array($image_ext,$image_extensions)){
       ?>
     
           <!-- Image -->
           <a href="<?php echo $image_path; ?>">
            <img src="<?php echo $thumbnail_path; ?>" alt="" title=""/>
           </a>
           <!-- --- -->
           <?php
     
           // Break
           if( $count%100 == 0){
           ?>
             <div class="pgd-clear"></div>
           <?php 
           }
           $count++;
          }
         }
     
        }
        closedir($dh);
       }
      }
     ?>
    avec deux fichiers CSS externe pour faire joli
    - simplelightbox.min.css
    - Photo-Gallery-Directory.css

    Le script fonctionne correctement, toutefois, il ne me classe pas les images par ordre alphanumérique
    mais le classement semble aléatoire.

    Quelqu'un pourrait-il m'apporter une aide pour modifier le code php ?

  2. #2
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Les répertoires ne classent pas les fichiers par ordre alphanumérique. Il faut un traitement spécifique pour les classer. Avec php il faut insérér les path dans un tableau, trier ce tableau, et c'est ce tableau que tu listes.

    Par exemple
    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
    <?php
    $tab_fich[] = [];
     
    while (($file = readdir($dh)) !== false)
    {
     
        //... on défini $image_path et $thumbnail_path et on les insère dans un tableau
     
       $tab_fich[$image_path] = $thumbnail_path;
     
    }
     
    // Tri du tableau avec ordre naturel insensible à la casse
    natcasesort($tab_fich);
    ?>
     
     
    <?php foreach ($tab_fich as $impath => $thumbpath) echo '<a href="'.$impath.'"><img src="'.$thumbpath.'" alt="" title=""></a>';?>

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2018
    Messages : 8
    Par défaut
    Merci ABCIWEB

    Mais je ne suis pas assez doué pour l’intégrer dans ma page.
    J'ai essayer de copié collé ton code sans succès.
    pourrait-tu me mettre sur la bonne piste ?

  4. #4
    Membre très actif
    Avatar de JPBruneau
    Homme Profil pro
    retraité
    Inscrit en
    Août 2019
    Messages
    229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2019
    Messages : 229
    Par défaut
    Si ce type de photothèque qui lit les images de tout répertoires et zoom, je te donnes les sources !
    http://www.fox-infographie.com/wphoto.php

    J'avais oublié il est dans mes articles de Developpez ...https://christele.developpez.com/tut...r-phototheque/

  5. #5
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Salut,

    Je n'ai pas utilisé ton code car j'ai vu ça:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
          // Thumbnail image path
          $thumbnail_path = "images/".$file;
     
          // Image path
          $image_path = "images/".$file;
    Ce qui veut dire que $thumbnail_path = $image_path. N'y aurait-il pas un problème ?

  6. #6
    Membre très actif
    Avatar de JPBruneau
    Homme Profil pro
    retraité
    Inscrit en
    Août 2019
    Messages
    229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2019
    Messages : 229
    Par défaut
    Citation Envoyé par ABCIWEB Voir le message
    Salut,
    Ce qui veut dire que $thumbnail_path = $image_path. N'y aurait-il pas un problème ?
    ce module passe partout, il est actif sur une vingtaine de sites ! tu as du juger un peut vite non ? regardes http://www.fox-infographie.com/wphoto.php et d'autres si tu veux !

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

Discussions similaires

  1. [EasyPHP] Informations diverses sur PHP
    Par paradoxham dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 20/03/2006, 11h59
  2. Envoi d'une variable en shell script sur php
    Par Ponchi dans le forum Langage
    Réponses: 3
    Dernier message: 07/02/2006, 13h54
  3. Classement membre sur 1 an
    Par kileak dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 24/10/2005, 15h45

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