Recherche interne: un "snippet" façon Google

WRInaute impliqué
Bonjour,

Sur le site de mon profil, j'ai créé un petit moteur en php qui cherche parmi les petites annonces du site en fonction d'une expression ; bref, qqchose de classique.
En l'état actuel des choses, sur la page de résultats, j'affiche les 60 premiers caractères de l'annonce (en faisant en sorte que la troncature ne se fasse pas au beau milieu d'un mot).

Code:
$description[$i] = preg_replace("/(^.{0,60})(\s+.*$)/","\${1}",$description[$i]).'...';
Ce que je voudrais faire, c'est toujours afficher environ 60 caractères de l'annonce, mais en fonction du mot clé de la recherche, un peu comme le fait Google...mais je dois dire que je ne vois pas du tout comment faire 8O

Si quelqu'un a une idée :)
Merci bien !
 
WRInaute passionné
je ne connais pas assez php pour te donner direct le code source mais typiquement, dans ce genre de problème, tu vas récupérer l'annonce entière, rechercher la première occurence du mot-clef, et renvoyer la chaine (provenant de l'annonce, commençant 30 caractères avant la première occurence, et ayant une longueur de 60 caractères)

en ayant bien sûr fait les vérifications qui s'imposent sur la longueur de l'annonce :wink:
 
WRInaute impliqué
J'ai bien essayé de faire comme le suggérait Dj_Apx, mais je me suis heurté à plusieurs problèmes...finalement j'ai abandonné, si qqun a une soluce simple, je suis preneur :wink:
 
WRInaute passionné
Bobez a dit:
J'ai bien essayé de faire comme le suggérait Dj_Apx, mais je me suis heurté à plusieurs problèmes...finalement j'ai abandonné, si qqun a une soluce simple, je suis preneur :wink:
si tu donnes ton code actuel et les erreurs renvoyées, je pourrai peut-être t'aider :wink:
 
WRInaute impliqué
En fait, ça m'a tellement énervé que j'ai tout balancé ;)

Voilà ce que j'ai voulu faire: afficher le début du texte (les n premiers caractères) puis un encadrement autour de la première occurrence du mot. Le soucis, c'est de gérer tous les cas: le cas où la première occurrence est dans le début du texte, le cas où l'encadrement autour de la 1ère occurrence comprend un bout du début du texte, etc...et en même temps faire en sorte de ne pas faire les coupes au milieu des mots.

Bref, au bout d'un moment j'ai explosé :wink: Mais je me dis qu'il doit bien y avoir des scripts de recherche en php gratuits qui font cela, et dans ce cas suffirait d'adapter...seulement j'en ai pas trouvé !
 
WRInaute impliqué
moi aussi j'ai cherché mais malheureusement je n'ai pas toutes les connaissances pour faire cela.
 
Discussions similaires
Haut