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 :

Pseudo en gras dans commentaires


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Novembre 2006
    Messages : 26
    Points : 13
    Points
    13
    Par défaut Pseudo en gras dans commentaires
    Bonjour,

    Alors voilà, sur mon site je voudrais mettre en gras les pseudo quand je répond aux commentaire...

    donc ma chaine de caractère est de cette forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $Texte = "toto > bla ba bla  tutu> bla bla bla \ntiti> bla bla bla\n tata> bla bla bla";
    J'essai d'utiliser la fonction ereg_replace pour ajouter des balises <b> et </b> avant le pseudo et après le >
    Comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo ereg_replace("#[[:space:]|^]([.+^>]>)[[:space:]]#", "<b>$1</b>", $Texte);
    Ce que je voudrais obtenir, c'est ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    // Résultat souhaité : " <b>toto ></b> bla ba bla  <b>tutu></b> bla bla bla \n<b>titi></b> bla bla bla\n <b>tata></b> bla bla bla"
    ... mais apparement mon expression régulière ne reconnais absolument rien, j'ai même beau la faire la plus simple possible, je n'y arrive pas...

    ... donc un peu d'aide me serai la bienvenue

  2. #2
    Membre confirmé
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 397
    Points : 518
    Points
    518
    Par défaut
    Salut,

    je te propose :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $subject = "toto > bla ba bla  tutu> bla bla bla \ntiti> bla bla bla\n tata> bla bla bla";
    $pattern = '`(\s*\w*)\s?[>]+`i'; // avec retour à la ligne \n
    //$pattern = '`\s*(\w*)\s?[>]+`i';  sans retour...
    $replacement = ' <b>${1}</b>';
    echo htmlentities(preg_replace($pattern, $replacement, $subject));
    // <b>toto</b> bla ba bla <b>tutu</b> bla bla bla <b>titi</b> bla bla bla <b>tata</b> bla bla bla
    Zend PHP5 Certification
    MySQL 4 Core Certification

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Novembre 2006
    Messages : 26
    Points : 13
    Points
    13
    Par défaut
    Merci beaucoup

    Bon par contre je me suis aperçu que les ">" était codé en "&gt;"

    Comme par exemple de commentaire que j'ai récupéré dans ma base :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <p>Nin0u&gt; non c'est pas ça !  $P <br />
    Sarah&gt; non plus ! ^_^ </p>
    .. du coup les "\n" on s'en moque un peu vu qu'il y a des "<br />"

    J'ai essayé en changeant comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $pattern = '`(\s*\w*\s?[&gt;])+`i';
    ... mais ça marche pas

    Décidément, je n'arrive a rien comprendre à ces expressions régulières...

  4. #4
    Membre confirmé
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 397
    Points : 518
    Points
    518
    Par défaut
    as tu laissé le htmlentities() ?

    si c'est le cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_replace($pattern, $replacement, $subject);
    Zend PHP5 Certification
    MySQL 4 Core Certification

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Novembre 2006
    Messages : 26
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par Gats Voir le message
    as tu laissé le htmlentities() ?
    Je me suis fait une page de test avec seulement ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $subject = "<p>Nin0u&gt; non c'est pas ça !  $P <br />
    Sarah&gt; non plus ! ^_^ </p>";
    //$pattern = '`(\s*\w*)\s?[>]+`i'; // avec retour à la ligne \n
    //$pattern = '`\s*(\w*)\s?[>]+`i';  sans retour...
    $pattern = '`(\s*\w*\s?[&gt;])+`i'; // avec retour à la ligne \n
    $replacement = ' <b>${1}</b>';
    echo htmlentities(preg_replace($pattern, $replacement, $subject));
    echo "<br><br>";
    echo preg_replace($pattern, $replacement, $subject);
    ici : http://moinoblog.free.fr/test.php

  6. #6
    Membre confirmé
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 397
    Points : 518
    Points
    518
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $subject = "<p>Nin0u&gt; non c'est pas ça !  $P <br />Sarah&gt; non plus ! ^_^ </p>";
    		$subject = html_entity_decode($subject);
     
    		$pattern = '`\s*(\w{2,})\s?[>]+`i';
    		$replacement = ' <b>${1}</b>';
    		echo preg_replace($pattern, $replacement, $subject);

    j'ai supposé qu'un pseudo était scrictement supérieur à 1 caractère.

    teste avec d'autre texte... j'ai pas assez de temps ^^
    Zend PHP5 Certification
    MySQL 4 Core Certification

  7. #7
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Novembre 2006
    Messages : 26
    Points : 13
    Points
    13
    Par défaut
    Bon, apparement j'ai fini par trouver ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $pattern = '`\s*(\w*\s?&gt;)+`i';
    ... je pense que ça fonctionne pour tout les cas !? enfin j'espère

    Et encore merci pour l'aide

  8. #8
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Novembre 2006
    Messages : 26
    Points : 13
    Points
    13
    Par défaut
    euh.. ce n'est pas mieux comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $pattern = '`\s*(\w{2,}\s?&gt;)+`i';
    parce que je voudrais que le ">" soit en gras aussi

    et le "\W*" ça n'a pas l'air de fonctionner car la enlève le ">" du "<p>" au début... normalement c'est censé faire quoi le "\W*" ?

  9. #9
    Membre confirmé
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 397
    Points : 518
    Points
    518
    Par défaut
    pour récapituler le tout :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $subject = "<p>Nin0u&gt; non c'est pas ça !  $P <br />Sarah&gt; non plus ! ^_^ </p>";
    		$subject = html_entity_decode($subject);
     
    		$pattern = '`\s*(\w{2,}\s?[>]+)`i';
    		$replacement = ' <b>${1}</b>';
    		echo preg_replace($pattern, $replacement, $subject);

    \W Indique ce qui n'est pas un mot - correspond à la classe [^0-9a-zA-Z]
    Très utile :
    http://www.expreg.com/

    ps : Il faut adapter (\w{2,}) selon les autorisations de syntaxe d'un pseudo.
    Zend PHP5 Certification
    MySQL 4 Core Certification

Discussions similaires

  1. Mettre du gras dans une zone de texte
    Par gontrand16 dans le forum IHM
    Réponses: 6
    Dernier message: 11/12/2012, 12h38
  2. Gras dans menu contextuel
    Par sunvialley dans le forum Access
    Réponses: 2
    Dernier message: 05/05/2006, 13h44
  3. [VB6]Chaines en gras dans le corps d'un mail
    Par Safaritn dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 02/02/2006, 13h20
  4. [FLASH MX] Mettre en gras dans ce code
    Par celina5880 dans le forum Flash
    Réponses: 6
    Dernier message: 15/01/2006, 15h16
  5. prob affichage mot en gras dans un texte
    Par klik dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 13/07/2005, 08h38

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