Systeme de recherche dans un fichier avec PHP
Résolu
kaham
Messages postés
180
Date d'inscription
Statut
Membre
Dernière intervention
-
kaham Messages postés 180 Date d'inscription Statut Membre Dernière intervention -
kaham Messages postés 180 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un fichier stock.khm (format de test pour m'amuser) disposé comme suite :
j'utilise ceci comme script PHP pour effectuer une recherche dans le fichier:
Ce qui pour le moment fonctionne très bien !
Voici mon ma question :
quand je tape comme mot clé "test" cela m'affiche sous forme de tableau : test / 5J0L1J3O
mais si je tappe "tes" (une partie du mot) il ne trouve aucun résultat.
Comment puis-je donc faire pour qu'il trouve un résulta en utilisant une partie du mot ?
J'ai un fichier stock.khm (format de test pour m'amuser) disposé comme suite :
Nom du site;Adresse du site;1K1S2Y3O Nom du site;Adresse du site;8G1E5H0I Nom du site;Adresse du site;5J0L1J3O test;Adresse du site;5J0L1J3O etc.
j'utilise ceci comme script PHP pour effectuer une recherche dans le fichier:
$mot_cle = $_POST['mot_cle']; $id_file = fopen('stock.khm', 'r'); while($tab=fgetcsv($id_file,500,";")){ if($tab[0] == $mot_cle){ echo "<center><br><table>"; echo "<tr><td><a href=\"$tab[1]\">$tab[0]</a></td><td><font color=\"#990000\">$tab[2]</font></td></tr>"; echo"</table></center>"; } } fclose($id_file);
Ce qui pour le moment fonctionne très bien !
Voici mon ma question :
quand je tape comme mot clé "test" cela m'affiche sous forme de tableau : test / 5J0L1J3O
mais si je tappe "tes" (une partie du mot) il ne trouve aucun résultat.
Comment puis-je donc faire pour qu'il trouve un résulta en utilisant une partie du mot ?
A voir également:
- Systeme de recherche dans un fichier avec PHP
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Restauration systeme windows 10 - Guide
- Fichier rar - Guide
5 réponses
Bonjour
Tu fais un test d'égalité if($tab[0] == $mot_cle). Donc pour l'instant, normal qu'il ne trouve le mot que s'il y a une correspondance exacte.
Tu peux utilser la fonction strpos pour détecter la présence de $tab[0] à l'intérieur de $motcle. Voir https://www.php.net/manual/fr/function.strpos.php Tu y trouveras aussi de nombreuses fonctions utiles pour le cas ou on a tapé en majuscules au lieu de minuscules, etc...
Tu fais un test d'égalité if($tab[0] == $mot_cle). Donc pour l'instant, normal qu'il ne trouve le mot que s'il y a une correspondance exacte.
Tu peux utilser la fonction strpos pour détecter la présence de $tab[0] à l'intérieur de $motcle. Voir https://www.php.net/manual/fr/function.strpos.php Tu y trouveras aussi de nombreuses fonctions utiles pour le cas ou on a tapé en majuscules au lieu de minuscules, etc...
La page ou m'envoie ton lien a pour le moment a un problème (error:404 not found).
Je regarderais quand elle sera de nouveau accessible. Merci de l'aide :)
Je regarderais quand elle sera de nouveau accessible. Merci de l'aide :)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Après avoir réglés quelques problèmes avec mon pc j'ai enfin pus tester cette fonction. Mais je n'arrive pas a avoir le résultat que je soihaite. Voici mon code PHP :
Quand je cherche un par exemple test dans mon fichier je tappe simplement "t" il ne le trouve pas.
Si je tape "e" il le trouve => "s" il le trouve => "tes" il ne le trouve pas et "test" non plus :s
Ou est mon erreur ?
Après avoir réglés quelques problèmes avec mon pc j'ai enfin pus tester cette fonction. Mais je n'arrive pas a avoir le résultat que je soihaite. Voici mon code PHP :
//Recherche de site dans le fichier if(isset($_POST['recherche'])){ $mot_cle = $_POST['mot_cle']; $id_file = fopen('stock.khm', 'r'); while($tab=fgetcsv($id_file,500,";")){ if(strpos($tab[0] , $mot_cle){ echo "<center><br><table>"; echo "<tr><td><a href=\"$tab[1]\">$tab[0]</a></td><td><font color=\"#990000\">$tab[2]</font></td></tr>"; echo"</table></center>"; } } fclose($id_file); }
Quand je cherche un par exemple test dans mon fichier je tappe simplement "t" il ne le trouve pas.
Si je tape "e" il le trouve => "s" il le trouve => "tes" il ne le trouve pas et "test" non plus :s
Ou est mon erreur ?