Mettre en gras un mot de chaine... [Résolu]

Signaler
Messages postés
22
Date d'inscription
lundi 23 janvier 2006
Statut
Membre
Dernière intervention
5 mars 2007
-
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
-
Bonjour,

Je viens de créer un moteur de recherche et j'aimerais mettre en gras le ou les mot(s) que la personne a recherché via le formulaire, je ne sais pas comment faire. Pouvez vous me mettre sur la piste ?

Merci d'avance pour votre aide
Bon week end
Ludo

10 réponses

Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
14
En fait si on veut être rigoriste, on devrait distinguer la mise en
forme du document (HTML/XML) de la mise en page du document (CSS). En
toute rigosité, il devrait :



1) Créer une classe CSS dans un fichier "style.css" :

.MotCle { font-weight: bold ; }

2) Inclure le fichier CSS dans son document :

<link rel="stylesheet" type="text/css" href="style.css">

3) Modifer l'instruction de remplacement de texte :

$Description = eregi_replace("$MotCle", "$MotCle", $Destination); // eregi est
mieux si on veut un remplacement insensible à la casse



amha.
Messages postés
135
Date d'inscription
vendredi 30 décembre 2005
Statut
Membre
Dernière intervention
18 avril 2006

salut,
comment ca !!
bein recupères la clé et mets echo '$mot_cle';
Messages postés
22
Date d'inscription
lundi 23 janvier 2006
Statut
Membre
Dernière intervention
5 mars 2007

je me suis mal exprimé je pense lol
en faite il s'agit de la description que ma requete a trouvé dans la base de données comme le fait google lorsque que tu effectue une recherche dans le descriptif il te met ton mot en gras
en espérant que j'ai été plus clair
@+
Messages postés
366
Date d'inscription
mercredi 7 avril 2004
Statut
Membre
Dernière intervention
20 février 2007
2
$resultat=str_replace($le_mot,''.$le_mot.'',$resultat);



$resultat étant le text où l'on doit mettre en gras le mot $le_mot

Thomvaill
IRC : Thomas (irc.heliosnet.org:6667 #programmation)
Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
14
$MotCle = ...mot clé donné par l'utilisateur...

// Faire une requete pour chercher la/les descriptions contenant le mot cle

// Je fais une supposition sur ta requete

if ( ($Resultat = mysql_query("SELECT Description FROM Table WHERE
Description LIKE %$MotCle%")) && mysql_num_rows($Resultat) ) {



// Convertir la reponse en objet pour l'accès au champ Description

$Reponse = mysql_fetch_object($result);

// Encadrer le MotCle par une balise

foreach ($Reponse->Description as $Description) {

$Description = ereg_replace("$MotCle", "$MotCle", $Description);

echo $Description;

}

if ( !mysql_free_result($Resultat) ) die ("Erreur lors de la libération de mémoire");

}



Ou quelquechose dans ce goût là... avec les erreurs en moins...
Messages postés
22
Date d'inscription
lundi 23 janvier 2006
Statut
Membre
Dernière intervention
5 mars 2007

merci à tous cela fonctionne nickel
une fonction que je ne connaissais un grand MERCI !!!!!!!
bonne soirée
@+
ludo
Messages postés
392
Date d'inscription
mercredi 24 novembre 2004
Statut
Membre
Dernière intervention
26 septembre 2009

Bonjour,
Alors, premièrement, Aureludo, valide leurs réponses s'il sont bonnes.
Ensuite, mieux veut utiliser qui il me semble. Question de Xhtml je crois ...
A++
Si un des membres à poster une reponse qui convient, accepter là !
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
Salut,

à chaque fois que t'as un mot tu rajoutes deux choses à deux tableaux différents :

$array_recherche[]= $mot; //tu mets dans l'array_recherche le mot que tu veux remplacer en gras
$array_remplace[]=' '.$mot.' ';

ensuite à la fin de la boucle (en dehors) qui a rempli les tableaux tu fais un unique str_replace :

$chaine =str_replace($array_recherche,$array_remplace,$chaine);

Concernant le et la différence vient du fait que le ne signifie pas que le texte en gras a une importance, tandis que le souligne l'importance du texte, le style choisi a été le gras mais ça aurait pu être autre chose, un peu comme et l'italique, qui diffère de (d'ailleurs non valide xhtml strict)

a +
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
Ou alors via un seul tableau :

$array[$mot] = ' '.$mot.' ';
$chaine = str_replace(array_keys($array), array_values($array), $chaine);

Et ca marche tout autant :)
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
ouais, c'est juste un peu moins clair :-)