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

cs_aureludo 22 Messages postés lundi 23 janvier 2006Date d'inscription 5 mars 2007 Dernière intervention - 18 févr. 2006 à 17:03 - Dernière réponse : cs_Anthomicro 9440 Messages postés mardi 9 octobre 2001Date d'inscription 13 avril 2007 Dernière intervention
- 19 févr. 2006 à 14:41
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
Afficher la suite 

10 réponses

Répondre au sujet
cs_AlexN 719 Messages postés lundi 5 décembre 2005Date d'inscription 8 janvier 2014 Dernière intervention - 18 févr. 2006 à 22:17
+3
Utile
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.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_AlexN
yergo 137 Messages postés vendredi 30 décembre 2005Date d'inscription 18 avril 2006 Dernière intervention - 18 févr. 2006 à 17:49
0
Utile
salut,
comment ca !!
bein recupères la clé et mets echo '$mot_cle';
Commenter la réponse de yergo
cs_aureludo 22 Messages postés lundi 23 janvier 2006Date d'inscription 5 mars 2007 Dernière intervention - 18 févr. 2006 à 18:10
0
Utile
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
@+
Commenter la réponse de cs_aureludo
thomvaill 370 Messages postés mercredi 7 avril 2004Date d'inscription 20 février 2007 Dernière intervention - 18 févr. 2006 à 20:11
0
Utile
$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)
Commenter la réponse de thomvaill
cs_AlexN 719 Messages postés lundi 5 décembre 2005Date d'inscription 8 janvier 2014 Dernière intervention - 18 févr. 2006 à 20:15
0
Utile
$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...
Commenter la réponse de cs_AlexN
cs_aureludo 22 Messages postés lundi 23 janvier 2006Date d'inscription 5 mars 2007 Dernière intervention - 18 févr. 2006 à 21:13
0
Utile
merci à tous cela fonctionne nickel
une fonction que je ne connaissais un grand MERCI !!!!!!!
bonne soirée
@+
ludo
Commenter la réponse de cs_aureludo
cs_Arnauti 418 Messages postés mercredi 24 novembre 2004Date d'inscription 26 septembre 2009 Dernière intervention - 18 févr. 2006 à 21:16
0
Utile
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à !
Commenter la réponse de cs_Arnauti
cs_Anthomicro 9440 Messages postés mardi 9 octobre 2001Date d'inscription 13 avril 2007 Dernière intervention - 19 févr. 2006 à 00:01
0
Utile
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 +
Commenter la réponse de cs_Anthomicro
FhX 2368 Messages postés mercredi 13 octobre 2004Date d'inscription 18 avril 2015 Dernière intervention - 19 févr. 2006 à 14:04
0
Utile
Ou alors via un seul tableau :

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

Et ca marche tout autant :)
Commenter la réponse de FhX
cs_Anthomicro 9440 Messages postés mardi 9 octobre 2001Date d'inscription 13 avril 2007 Dernière intervention - 19 févr. 2006 à 14:41
0
Utile
ouais, c'est juste un peu moins clair :-)

Commenter la réponse de cs_Anthomicro

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.