Fonction de recherche en php

bonjour à tous. voilà mon pb :
j'ai un fichier "Etudiants.txt". en langage php je souhaite faire une fonction qui recherche un nom qu'un utilisateur veut rechercher dans ce fichier, et qui renvoit vrai si trouvé et faux sinon.
merci
Configuration: php

7 réponses

  1. Hum, c'est question intéressante. Est-ce que ton fichier txt est formaté ?? Je veux dire par exemple une tabulation entre les différentes informations ... Dans ce cas, il faudrait parcourir le fichier jusqu'à la fin, pour chaque ligne, il faudrait tester le nom trouvé (le comparer avec celui demandé....) Hum, à moins qu'il y'ait qqchose d'existant déjà ....
    0
    1. Voici un exemple de ce que j'aurais fait :

      <?php
      
      $fic = fopen('ton_fichier.txt', 'r');
      $recherche = 'ASSELIN';
      
      while( !feof($fic) )
      {
          $ligne = fgets($fic, 4096);
          if( preg_match('#' . $recherche . '#', $ligne) )
          {
              $result = $ligne;
              break;
          }
      }
      echo $result;
      
      ?>


      Tu récupère les résultats séparément avec un explode.

      Mais il y a peut-être des fonctions de recherches déjà établies pour les fichiers.
      0
      1. ok merci
        et dans les paramètres de fget à la place de 4096 est-ce que j'aurai pu mettre * pour lui dire de lire tout le fichier ?
        0
        1. Non, fgets retourne la ligne courante lue par php.
          http://fr3.php.net/manual/fr/function.fgets.php

          D'ailleurs tu peu réduire la valeur.

          Si tu avais plusieurs personnes ayant le même nom, ou prénom, il te faut construire un array() dans ta boucle, et enlever le break.

          Après tu lis le résultat dans un foreach() et letour est joué.
          0
          1. Bonjour,
            Et sinon, utiliser une BDD c'est pas plus simple ? ^^
            0
            1. Bonjour,
              J'aimerais faire un moteur de recherche en php sur un seul fichier html. Par exemple, je veux rechercher le mot hello dans un fichier ou il y a plusieur mots hello. J'aimerais que le resultat s'affiche sous la forme :

              Resultat 1 :
              blablabla
              blablabla
              blablabla hello blablabla
              blablabla
              blablabla
              Resultat 2 :
              blablabla
              blablabla
              blablabla hello blablabla
              blablabla
              blablabla
              Resultat 3 :
              blablabla
              blablabla
              blablabla hello blablabla
              blablabla
              blablabla

              Je ne suis pas bon en php mais je crois qu'il faut utiliser les fonctions foreach et while. Si quelqu'un peut m'aider. Je lui en remercie d'avance.
              0