Fonction de recherche en php

Littlenico Messages postés 68 Date d'inscription   Statut Membre Dernière intervention   -  
 Greg -
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

7 réponses

SJEric Messages postés 26 Date d'inscription   Statut Membre Dernière intervention   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
Yvan
 
Il faut t'orienter à mon avis du côté de preg_match.
https://www.php.net/manual/fr/function.preg-match.php
0
Yvan
 
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
Littlenico Messages postés 68 Date d'inscription   Statut Membre Dernière intervention   2
 
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Yvan
 
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
Traize
 
Bonjour,
Et sinon, utiliser une BDD c'est pas plus simple ? ^^
0
Greg
 
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