Présenter les résultats dans un moteur de recherche

Invité
Invité n'ayant pas de compte PHPfrance

11 juin 2005, 15:31

hello !

J'ai un petit moteur de recherche en php et j'aimerais pour la présentation des résultats avoir deux lignes issues du texte "résultat" et que le mot recherché soit en gras (un peu comme Google quoi).

Mon algo de recherche me renvoie le texte complet, qui contient le mot. Je n'arrive pas à restreindre ça à une string de 160 caractère qui commence 80 caractères avant le mot recherché. Bref, le problème c'est récupérer l'indice du premier caractère de la sous-chaine "mot-clef" dans la chaine "résutlat".

j'ai vu qu'il y a une fonction qui fait exactement ça en PHP 5, mais mon serveur n'accepte pas le PHP5... et j'arrive pas à coder cette fonction tout seul :(.
> http://fr.php.net/manual/fr/function.stripos.php

Donc si quelqu'un peut m'aider, merci d'avance !

Petit nouveau ! | 2 Messages

11 juin 2005, 15:32

PS : Mince, ce message est de moi, je croyais que j'étais logué mais en fait non. Désolé.

Mammouth du PHP | 1776 Messages

11 juin 2005, 15:42

en toute logique cela donne:
je sors le texte de ma requête sql, je recherche les différentes positions du mot souhaité, je sélectionne mes mots avant et après, je passe le mot en gras.

C'est bien ça?
si c'est cela il faut utiliser:
- une fonction que je connais pas pour trouvée la chaine de caractere entiere souhaité dans ta requete.
- wordwrap() pour selectionner un certain nombre de mot
- et replace() pour remplacer ton mot par <b>ton mot</b>

:wink:

Mammouth du PHP | 19672 Messages

11 juin 2005, 15:43

Il faut te tourner vers les expressions régulières. Ripat a fait un excellent tuto sur le site de PHPFrance, tu devrais y jeter un coup d'oeil attentif, la réponse à ton problème s'y trouve.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Petit nouveau ! | 2 Messages

11 juin 2005, 16:28

Mouaip, je vois bien que ça à l'air super puissant, mais je suis pas programmeur pro, ni même amateur, et c'est un peu compliqué pour moi.

J'arrive à bidouiller avec substr et str_replace, mais comme je n'arrive pas à récupérer l'indice de la première occurence du mot recherché, ça coince.

Et j'ai pas compris comment faire ça avec les expressions régulières. :(