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 :

Fonction tri de fichier par son nom


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2012
    Messages : 15
    Points : 11
    Points
    11
    Par défaut Fonction tri de fichier par son nom
    Bonsoir,

    Je suis en train de faire un script pour afficher au hasard des images, qui sont dans un fichier, sur ma page web. Mais il faudrait que je trie ces images pour que le script ne prenne pas les images avec la terminaison et je ne sais pas comment m'y prendre, je pense devoir le faire dans un fonction mais je ne sais pas comment ... :/
    Pouvez-vous m'aider s'il vous plait ?

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    1 - lire le nom des fichiers dans le dossier
    2 - pour chaque fichier si le nom ne contient pas small, le mettre dans un tableau PHP
    3 - sortir une entrée du tableau au hasard
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Pour compléter la réponse de sabaotage :
    1. scandir
    2. strpos
    3. array_rand

    Note : scandir renvoie aussi "." (dossier courant) et ".." (dossier parent) Il faut penser à les écarter de la liste
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2012
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    Merci de vos réponse, elle m'ont amené à chercher et j'ai réussi.
    Encore merci de votre aide et bonne soirée .

  5. #5
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    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 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Oui ou à partir de php 5.1 tu pourrais utiliser la SPL
    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
    //Classe pour vérifier que c'est un fichier et exclu "_small.jpg"
    class Tri_perso extends FilterIterator {
        public function accept() { 
               return $this->isFile() && strpos($this->getFilename(),'_small.jpg')===false;
        }
    }
     
    $dossier = 'PHOTO';
    $files = new Tri_perso(new DirectoryIterator($dossier));
     
    $nb_aleatoire = mt_rand(0,iterator_count($files)-1);
    $result = new LimitIterator($files,$nb_aleatoire,1);
     
    foreach ($result as $value)
    {
    	echo $value;
    }

    Ou si tu voulais utiliser uniquement un regex pour faire le tri, il y a aussi RegexIterator à partir de php5.2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $dossier = 'PHOTO';
     
    //Pour exclure "_small" et en ne gardant que les fichiers avec l'extension '.jpg'
    $match = '#^((?!_small).)*\.jpg$#';
     
    $files = new RegexIterator(new DirectoryIterator($dossier),$match);
     
    $nb_aleatoire = mt_rand(0,iterator_count($files)-1);
    $result = new LimitIterator($files,$nb_aleatoire,1);
     
    foreach ($result as $value)
    {
    	echo $value;
    }

    Cela dit, le plus rapide serait certainement d'utiliser la fonction "glob" de php mais je ne maîtrise pas assez les masques shell pour ton exemple.

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

Discussions similaires

  1. [XL-2007] Ouverture d'un fichier en fonction d'une partie de son nom
    Par Yamiral dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 09/11/2012, 17h02
  2. [XL-2002] Sélectionner fichier en fonction d'une partie de son nom
    Par johan89 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 02/11/2011, 20h48
  3. executer une fonction par son nom en string
    Par milach dans le forum C++
    Réponses: 7
    Dernier message: 11/01/2010, 17h15
  4. [POO] Appeler une fonction par son nom dans une variable
    Par whitespirit dans le forum Langage
    Réponses: 16
    Dernier message: 18/06/2008, 11h23
  5. Réponses: 4
    Dernier message: 06/06/2004, 12h07

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