Fonction de recherche en php

Fermé
Signaler
Messages postés
68
Date d'inscription
samedi 11 février 2006
Statut
Membre
Dernière intervention
5 mars 2009
-
 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

Messages postés
26
Date d'inscription
jeudi 18 janvier 2001
Statut
Membre
Dernière intervention
13 juin 2006
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à ....
Il faut t'orienter à mon avis du côté de preg_match.
https://www.php.net/manual/fr/function.preg-match.php
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.
Messages postés
68
Date d'inscription
samedi 11 février 2006
Statut
Membre
Dernière intervention
5 mars 2009
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 ?
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é.
Bonjour,
Et sinon, utiliser une BDD c'est pas plus simple ? ^^
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.