Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
557 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Surligner une expression recherchée dans une chaine de caractères

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Surligner une expression recherchée dans une chaine de caractères

n°802692
Clapsou
Posté le 22-07-2004 à 01:44:11  profilanswer
 

Je suis en train de faire un moteur de recherche pour mon site et à l'aide d'une requete sql je prend toutes les lignes de la table ou tel champ contient ou est égal au mot ou à l'expression entré par le visiteur. Ca marche très bien mais je souhaiterais (pour que ça soit plus classe et lisible) surligner ou mettre d'une autre couleur le mot ou l'expression recherchée à l'intérieur de toute la chaine de caractère du champ. Est ce que quelqu'un a une idée ? Peut être qu'il fautdrait utiliser la fonction stristr mais elle ne trouve que la première occurence de la chaine ou bien la fonction strpos mais elle ne trouve que la dernière position de l'occurence puis comment faire pour ensuite écrire l'occurence en une autre couleur juste en ayant sa position dans la chaine de toutes façons.
Merci pour votre aide

mood
Publicité
Posté le 22-07-2004 à 01:44:11  profilanswer
 

n°802705
naceroth
Posté le 22-07-2004 à 02:09:42  profilanswer
 

Utilise une fonction de remplacement avant l'affichage (en supposant que tu affiches les résultats en HTML) comme str_replace ou preg_replace.

Code :
  1. $cherche = 'cible';
  2. $string = 'cible est le mot recherché';
  3. echo str_replace($cherche,"<span class=\"underline\">$cherche</span>",$string);


 
va donner cible est le mot recherché. (enfin, avec la CSS idoine :D)
 
Utilise str_replace ou preg_replace suivant que tu veux retrouver les apparitions d'une chaine ou un mot seulement.

n°803625
Clapsou
Posté le 22-07-2004 à 18:04:27  profilanswer
 

naceroth a écrit :

Utilise une fonction de remplacement avant l'affichage (en supposant que tu affiches les résultats en HTML) comme str_replace ou preg_replace.

Code :
  1. $cherche = 'cible';
  2. $string = 'cible est le mot recherché';
  3. echo str_replace($cherche,"<span class=\"underline\">$cherche</span>",$string);


 
va donner cible est le mot recherché. (enfin, avec la CSS idoine :D)
 
Utilise str_replace ou preg_replace suivant que tu veux retrouver les apparitions d'une chaine ou un mot seulement.


 
Merci beaucoup ça marche impec, le seul détail c'est que str_replace est sensible à la casse :/ Chez trouvé sur un site la fonction str_ireplace qui est la version insensible à la casse de str_replace donc j'étais trop content mais elle ne marche pas! Ca m'affiche "call undefinided function str_ireplace" etc.. Donc jsuis deg :/ Mon hébergeur est multimania, est ce possible que leur serveur php ne reconnaisse pas toutes les fonctions ?

n°803635
T509
$job-&gt;GetJob(now)
Posté le 22-07-2004 à 18:07:10  profilanswer
 

str_ireplace est dispo en php5, multimania ne doit pas y être encore.
Il faudra attendre


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
n°803640
harrysauce
Miaaaooou!
Posté le 22-07-2004 à 18:08:37  profilanswer
 

Avec une expression régulière, ca passe non?

n°803643
Clapsou
Posté le 22-07-2004 à 18:09:33  profilanswer
 

harrysauce a écrit :

Avec une expression régulière, ca passe non?


 
avec str_replace ça marche tres bien oui

n°803644
Clapsou
Posté le 22-07-2004 à 18:10:11  profilanswer
 

T509 a écrit :

str_ireplace est dispo en php5, multimania ne doit pas y être encore.
Il faudra attendre


 
Mince sont nuls multimania  :o

n°803645
harrysauce
Miaaaooou!
Posté le 22-07-2004 à 18:10:54  profilanswer
 

Clapsou a écrit :

avec str_replace ça marche tres bien oui

str_replace est sensible à la casse, et str_ireplace n'est pas dispo chez ton hébergeur, je te proposais donc de passer par les epxressions régulière (fonction eregi, par exemple)..... :sarcastic:

n°803648
Clapsou
Posté le 22-07-2004 à 18:12:07  profilanswer
 

harrysauce a écrit :

str_replace est sensible à la casse, et str_ireplace n'est pas dispo chez ton hébergeur, je te proposais donc de passer par les epxressions régulière (fonction eregi, par exemple)..... :sarcastic:


 
Ah dsl, quelle différence entre une expression normal ou bien régulière ?

n°803662
harrysauce
Miaaaooou!
Posté le 22-07-2004 à 18:19:07  profilanswer
 
mood
Publicité
Posté le 22-07-2004 à 18:19:07  profilanswer
 

n°803670
Clapsou
Posté le 22-07-2004 à 19:19:23  profilanswer
 


 
ereg_ireplace ne marche pas non plus sur multimania et ereg_replace n'est pas moins sensible à la casse de str_replace :(


Message édité par Clapsou le 22-07-2004 à 19:20:22
n°803694
naceroth
Posté le 22-07-2004 à 19:42:35  profilanswer
 

Si, avec les regex ça fonctionne (j'y avais pas pensé à la casse :)) :
 

Code :
  1. $cherche = 'cible';
  2. $string = 'Cible est le mot recherché';
  3. echo preg_replace("/($cherche)/i","<span class=\"underline\">$1</span>",$string);


donne bien Cible est le mot recherché.
 
Et je suis pas un pro en regex :D

n°803714
Clapsou
Posté le 22-07-2004 à 20:29:50  profilanswer
 

naceroth a écrit :

Si, avec les regex ça fonctionne (j'y avais pas pensé à la casse :)) :
 

Code :
  1. $cherche = 'cible';
  2. $string = 'Cible est le mot recherché';
  3. echo preg_replace("/($cherche)/i","<span class=\"underline\">$1</span>",$string);


donne bien Cible est le mot recherché.
 
Et je suis pas un pro en regex :D


 
Bravo tu es un chef!  :jap:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Surligner une expression recherchée dans une chaine de caractères

 

Sujets relatifs
impression caracteres speciauxExtraction chaine d'un fichier html
[resolu]replace dans une chaine[C++] ajouter dans une multimap des chaines de caractères...
comparaison de chaines de caracteresProbleme de decompression de fichier zip contenant des caracteres é
Nettoyer une chaine de caractère des articles qu'elle contientConcatenation super simple de chaine de caractere
Problème d'expression régulièreExpression Reguliere cplx, need help.
Plus de sujets relatifs à : Surligner une expression recherchée dans une chaine de caractères


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR