IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

comment highlighter un mot dans une chaine ...


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 6
    Points : 4
    Points
    4
    Par défaut comment highlighter un mot dans une chaine ...
    Bonjour.

    J'utilise un logiciel de comptabilité et je communique avec celui-ci avec du XML et des scripts php (PHP5).
    Je suis entrain de réaliser une recherche d'articles.
    Lorsque l'utilisateur écrit un mot clé, le programme recherche dans un libellé d'article (dans le logiciel de compta).
    Je voudrais coloriser le mot dans le libellé.

    J'utilise la fonction eregi_replace(). Résultat:
    Lorsque je tape en majuscule, le programme affiche le libellé dans la couleur voulue et reste en majuscule. Mais lorsque je tape le même mot en minuscule, le programme affiche le libellé dans la couleur voulue mais tout ce qui est en majuscule, il le remplace en minuscule.

    Comment puis-je faire pour que mon programme ne modifie pas les majuscules et les minuscules dans le libellé lorsque je colorise le mot?
    J'ai essayé plusieurs fonctions mais je n'ai pas trouvé la fonction idéale.

    Merci beaucoup.

  2. #2
    Membre éclairé Avatar de nako
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2003
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2003
    Messages : 577
    Points : 663
    Points
    663
    Par défaut Re: comment highlighter un mot dans une chaine ...
    Citation Envoyé par valou2006
    J'utilise la fonction eregi_replace().
    Peux-tu nous donner un exemple d'utilisation ? stp ?
    Ca serait plus facile pour te répondre, car perso, je n'ai pas compris pourquoi tu remplaçais la chaîne.
    Il suffirait juste de mettre quelque chose avant et quelque chose après (disant, ici, on highlight) sans toucher la chaine en question.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Merci de ton aide.
    Voilà le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $libelle = eregi_replace($motcle, '<span class="highlight">'.$motcle.'</span>', $libelle);
    $motcle : c'est le mot recherché.
    $libelle : c'est le libellé de l'article où je recherche.

    Comme je le remplace par le motcle, lors de l'affichage, le libellé contient le motcle.
    Comment pourrais-je faire pour garder le libellé avec les majuscules ou minuscules?

  4. #4
    Membre éclairé Avatar de nako
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2003
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2003
    Messages : 577
    Points : 663
    Points
    663
    Par défaut
    Hello, sans certitude en fait ... est-ce que l'utilisation des parenthèses capturantes pourrait résoudre le problème ?
    http://us3.php.net/manual/fr/function.eregi-replace.php
    Bon courage.
    a+

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    J'ai déjà essayé et ca ne marche pas.

  6. #6
    Membre habitué
    Inscrit en
    Août 2005
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 142
    Points : 156
    Points
    156
    Par défaut
    deja question performance tu devrai plutot utiliser str_replace car tu n'utilise pas de règles de remplacement

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Ca ne marche pas.

    Comment puis-je faire pour que mon programme ne modifie pas les majuscules et les minuscules dans le libellé lorsque je colorise le mot qui est recherché?

  8. #8
    Membre habitué
    Inscrit en
    Août 2005
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 142
    Points : 156
    Points
    156
    Par défaut
    ben comme la dit nako, utilise les parenthèses capturantes avec eregi_replace

  9. #9
    Membre éprouvé Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Points : 1 009
    Points
    1 009
    Par défaut
    Un truc dans ce genre là n'irait t'il pas ?

    http://php.developpez.com/sources/?page=regexp#surbrill

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Merci.
    J'ai essayé mais ca retire le mot qui est recherché dans le libellé.

    C'est dommage car je n'ai toujours pas trouvé de mon coté.

Discussions similaires

  1. [CS5] Comment dupliquer un mot dans une chaine de caractère
    Par dorsey dans le forum Flash
    Réponses: 0
    Dernier message: 31/10/2012, 11h04
  2. Comment trouver un mot dans une chaine ?
    Par totoAussi dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 06/05/2012, 09h38
  3. [AC-2000] Comment filtrer des mots dans une chaine de caractères
    Par bionet dans le forum Requêtes et SQL.
    Réponses: 11
    Dernier message: 21/07/2009, 18h16
  4. Comment remplacer un mot dans une chaines de caractere?
    Par lakhdharani dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 24/02/2009, 11h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo