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 :

Concaténation couleur ? [Fait] [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Février 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 271
    Points : 86
    Points
    86
    Par défaut Concaténation couleur ?
    Salut

    A la suite de ce topic :
    http://www.developpez.net/forums/sho...=319973&page=3

    Je me suis permis d'ouvrir un autre traitant d'une éventuelle suite.

    Tout d'abord , j'ai fait un moteur de recherche et j'aimerais mettre en surbrillance la partie du mot recherché.

    exemple : pour le mot "Charte" , si l'utilisateur saisit "Ch" , il aura affiché comme résultat Charte. mais j'aimerais mettre en avant dans le résultat :
    Pour la recherche : Ch , vous avez comme résultats :
    (la c'est facile)

    Charte (pas aussi évident la)

    $CHAMP=explode("",$SAISIE_DU_USER); garde touts les mots saisies , il y a t'il un moyen de le concaténer avec une balise <font color> ?

    ou encore faut t'il le faire dans le FOR ?

    Cordialement,

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    C'est plus simple avec les expression régulières :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<td>'. preg_replace('.(' . preg_quote($SAISIE) . ').', '<span style="color: red">\1</span>', $data["description"]) .'</td>';
    A la place de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<td>'.$data["description"].'</td>';
    Si j'ai bien compris

    Note : votre première requête (avec le COUNT) n'est pas utile puisque la fonction mysql_num_rows sur la deuxième vous aurait directement donné cette information (une requête au lieu de deux).

  3. #3
    Membre régulier
    Inscrit en
    Février 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 271
    Points : 86
    Points
    86
    Par défaut
    1) A propos du num_rows pour le count. Merci ça fonctionnes.

    2) Pour la couleur ça marches aussi ,

    PS : Pour la couleur , il prend en compte les majuscules ou minuscules de la saisie , contrairement a la recherche qui ne tient pas compte de ça. il y a une solution ?

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    J'aurais dû vous le préciser : il suffit d'ajouter l'option i à l'expression régulière après le délimiteur de fin, ce qui nous donne donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<td>'. preg_replace('.(' . preg_quote($SAISIE) . ').i', '<span style="color: red">\1</span>', $data["description"]) .'</td>';

  5. #5
    Membre régulier
    Inscrit en
    Février 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 271
    Points : 86
    Points
    86
    Par défaut
    Merci beaucoup , ça fonctionnes très bien.


    Sinon julp , tu peux donner quelques informations à propos du code ?

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Partie '.(' . preg_quote($SAISIE) . ').i' :

    Le point de début et de fin de l'expression régulière sert ici de délimiteurs (il n'est pas imposé et nous sommes libres de le choisir). J'ai volontairement choisi ce caractère car il sera protégé par la fonction preg_quote (elles protégent tous les caractères possédant une signification particulière : ., +, *, parenthèses, ...). En effet, si le délimiteur vient à figurer dans l'expression elle-même il nécessite alors un échappement.

    Les parenthèses servent ici à indiquer que la partie qui correspond à son contenu sera capturée pour réutilisation par le second paramètre de la fonction preg_replace dans notre cas.

    Enfin, l'option (après le délimiteur de fin de l'expression) i indique que l'expression ne sera pas sensible à la casse.


    Partie '<span style="color: red">\1</span>' :

    Rien de nouveau si ce n'est la partie \1 qui fait référence à la partie capturée par la première parenthèse de l'expression régulière. Il s'agit d'une sorte de variable qui sera systématiquement remplacée par la chaîne satisfaisant la parenthèse capturante correspondant au nombre indiqué.

    Je ne peux dévoiler ici tous les aspects concernant les expressions régulières et je ne suis pas certain d'être assez clair dans mes explications c'est pourquoi je vous renvoie pour approfondir vos connaissances vers le tutoriel suivant : Initiation aux expressions régulières en PHP.

  7. #7
    Membre régulier
    Inscrit en
    Février 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 271
    Points : 86
    Points
    86
    Par défaut
    Ok, merci beaucoup !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. alterner les couleurs dans un tableau avec xsl
    Par Eithelgul dans le forum XSL/XSLT/XPATH
    Réponses: 14
    Dernier message: 03/05/2015, 23h29
  2. [XL-2002] couleur différente de données concaténées
    Par _cheers dans le forum Excel
    Réponses: 2
    Dernier message: 26/08/2009, 17h49
  3. Couleur d'une JComboBox disabled
    Par ced dans le forum Composants
    Réponses: 6
    Dernier message: 06/01/2004, 15h33
  4. Mixage de Couleurs
    Par exxos dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 29/05/2002, 13h34
  5. String Grid et choix d'une couleur pour une ligne
    Par Gigottine dans le forum C++Builder
    Réponses: 12
    Dernier message: 17/05/2002, 15h23

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