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 :

Recherche dans un fichier


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2014
    Messages : 1
    Par défaut Recherche dans un fichier
    Bonjour/Bonsoir

    Voilà j'ai un petit soucis, j'aimerai rechercher dans un fichier appelé "message" les clés des mots.

    exemple :

    mon fichier message contient ceci :

    crayon stylo feutre taille-crayon pointe wesh mine gomme dessin coloriage rayure peinture pinceau couleur craie papier feuille cahier carnet teuf carton ciseaux decoupage pliage pli colle affaire boîte casier caisse trousse cartable jouet jeu pion de oseille domino puzzle cube perle keusse chose forme rond pate tampon livre histoire bibliotheque image album titre bande conte dictionnaire magazine catalogue page ligne mot enveloppe etiquette carte alphabet appareil camescope cassette cede cederom chaîne chanson chiffre contraire difference doigt ecran ecriture film fois idee instrument intrus lettre liste magnetoscope main micro modele musique nom nombre orchestre ordinateur photo point poster pouce prenom question radio sens tambour telecommande telephone television trait trompette voix xylophone zero

    Mon dico contient ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $array = array('fete' => 'teuf', 'bonjour' => 'wesh', 'argent' => 'oseille');
    et je veux que quand on lance mon programme :

    $>./nox.php message dico
    il me retourne :
    wesh
    teuf
    oseille
    $>
    En gros il recherche si mon fichier "message" contient un des mots, sinon il ne l'affiche pas

    Je sais qu'il faut faire une fonction de recherche mais j'en sais pas plus.

    J'espère m'être bien expliqué, merci de votre aide, je rame vraiment.. Avez-vous un code à proposer s'il vous plaît ?

    Je vous remercie d'avance !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Tu ouvres ton fichier, tu fais une boucle pour parcourir ton tableau et à chaque itération de la boucle tu vérifies si le mot existe dans ton fichier.
    Si c'est le cas, tu retournes le mot.
    Vois tu coté des expressions régulières, strpos() etc

  3. #3
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 986
    Par défaut
    Si ton fichier a une taille raisonnable, le mieux est de le charger dans une variable, d'utiliser explode, puis array_intersect qui sont toutes deux des fonctions très performantes. L'avantage de cette approche est qu'elle évite de boucler sur le dictionnaire pour rechercher chaque mot dans le message. Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $message = 'crayon stylo feutre taille-crayon pointe wesh mine gomme dessin coloriage rayure peinture pinceau couleur craie papier feuille cahier carnet teuf carton ciseaux decoupage pliage pli colle affaire boîte casier caisse trousse cartable jouet jeu pion de oseille domino puzzle cube perle keusse chose forme rond pate tampon livre histoire bibliotheque image album titre bande conte dictionnaire magazine catalogue page ligne mot enveloppe etiquette carte alphabet appareil camescope cassette cede cederom chaîne chanson chiffre contraire difference doigt ecran ecriture film fois idee instrument intrus lettre liste magnetoscope main micro modele musique nom nombre orchestre ordinateur photo point poster pouce prenom question radio sens tambour telecommande telephone television trait trompette voix xylophone zero';
     
    $dico = array('fete' => 'teuf', 'bonjour' => 'wesh', 'argent' => 'oseille', 'chat'=>'matou', 'truc'=>'machin');
     
    $wordList = explode(' ', $message);
     
    $result = array_intersect($dico, $wordList);
     
    print_r($result); // Je te laisse le soin de customiser l'affichage

  4. #4
    Invité
    Invité(e)
    Par défaut
    Hum intéressant, je ne connaissais pas la fonction array_intersect()

Discussions similaires

  1. Améliorer la recherche dans un fichier?
    Par abdmaa dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 09/05/2005, 13h09
  2. [LG]Runtime Error lors d'une recherche dans un fichier
    Par Fraynor dans le forum Langage
    Réponses: 2
    Dernier message: 15/03/2005, 22h51
  3. Rechercher dans un fichier avec emacs
    Par ggnore dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 24/11/2004, 10h28
  4. recherche dans un fichier xml (castor)
    Par pingoui dans le forum Format d'échange (XML, JSON...)
    Réponses: 8
    Dernier message: 06/09/2004, 14h28
  5. [LG]rechercher dans un fichier texte
    Par BadFox dans le forum Langage
    Réponses: 11
    Dernier message: 01/12/2003, 15h57

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