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 :

Mettre des mots en gras


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de PIEPLU
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    507
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 507
    Par défaut Mettre des mots en gras
    Bonjour,

    Je voudrais mettre certains mots en gras. J'ai fait pour le moment comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function remplace($matches) { return '<strong>'.$matches[0].'</strong>'; }
    function MotEnGras2($ancien,$origine) { return preg_replace_callback('/\b('.implode('|', $origine).')+(?:|s|e|es)\b/i','remplace', $ancien);}
    $ancien = "salon de thé à Avignon théières.";
    $titre="Simple Simon Avignon - Salon de thé et café, Salons de thé";
    $origine = array();
    $mots3 = explode(" ", trim(strtolower($titre)));
    $exclure3 = array('a','un','une','de','la','du','le','les','des','et','dr','dr.','d','sur','sous','en','dans');
    $replace = array("d'","m'","j'","qu'","c'","t'","l'","s'","n'","l'","-",",");
    foreach($mots3 as $mot) {  if (!in_array($mot,$exclure3)) { $origine[] = str_replace($replace, '', stripslashes($mot));} }
    $origine = array_filter($origine);
    echo MotEnGras2($ancien,$origine);
    Or, ca met en gras "théières" car il contient le mot "thé". Or, je ne veux ressortir que les mots exacts. Peut être un problème avec les accents ?

    Une idée ?

    Merci

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    rajoute l'option u a ton motif

    ps : indente ton code

  3. #3
    Membre éclairé Avatar de PIEPLU
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    507
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 507
    Par défaut
    Je viens d'essayer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function MotEnGras2($ancien,$origine) { return preg_replace_callback('/\b('.implode('|', $origine).')+(?:|s|e|es)\b/ui','remplace', $ancien);}
    Mais ca me ressort

    Compilation failed: invalid UTF-8 string at offset 33

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    il faudrait que ton code php soit en utf-8

  5. #5
    Membre éclairé Avatar de PIEPLU
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    507
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 507
    Par défaut
    Sauf que je ne peux pas toucher à l'encodage de la page :s

    Quelle solution reste t'il ?

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par PIEPLU Voir le message
    Sauf que je ne peux pas toucher à l'encodage de la page :s

    Quelle solution reste t'il ?
    du fichier pas de la page, sinon essaye avec setlocale

Discussions similaires

  1. Mettre des mots en surbrillance dans un texte
    Par Moloc'h dans le forum Contribuez / Téléchargez Sources et Outils
    Réponses: 0
    Dernier message: 14/02/2011, 19h03
  2. Mettre des mots au hasard
    Par blnight dans le forum Programmation (La)TeX avancée
    Réponses: 1
    Dernier message: 27/10/2010, 21h21
  3. Réponses: 8
    Dernier message: 20/05/2010, 20h18
  4. Mettre des mots sur un code
    Par isis1be dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 19/06/2008, 18h16
  5. [JTable] Mettre des lignes en gras
    Par Takis dans le forum Composants
    Réponses: 6
    Dernier message: 04/04/2008, 12h56

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