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 :

str_replace complexe : surligner les mots


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2011
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 63
    Points : 36
    Points
    36
    Par défaut str_replace complexe : surligner les mots
    Bonjour,

    Je bloque à ce niveau de mes compétences php :/

    - J'ai une bdd mysql avec une table qui comporte des mots

    - J'ai un texte sur mon site et je souhaite mettre les mots de ce texte en gras s'ils sont dans ma table sql.

    mots de ma bdd : laisse, élevage de chien, chien

    mon code qui fonctionne bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $texte = "J'ai une jolie laisse. Je fais de l'élevage de chien, je vais me servire de ma laisse.";
    $query = mysql_query("SELECT mot FROM table");
    		while ($result = mysql_fetch_array($query)){
    			$texte = str_replace($result['mot'], '<b>'.$result['mot'].'</b>', $result['mot']);
    		}
    echo $texte;
    Mais je souhaiterais aller plus loin et ajouter 2 choses :
    1 - Seul le 1et même mot du texte doit être en gras.
    2 - mettre en gras une combinaison de mot en priorité sur un mot.

    ce qui donnerait dans mon echo :

    J'ai une jolie laisse. Je fais de l'élevage de chien, je vais me servire de ma laisse.

    Et non PAS ceci :

    J'ai une jolie laisse. Je fais de l'élevage de chien, je vais me servire de ma laisse.

    Je n'ai aucune idée de comment faire, merci d'avance !

  2. #2
    Expert éminent sénior

    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
    Points : 10 727
    Points
    10 727
    Par défaut
    tu vas devoir utiliser preg_replace avec son paramètre limit

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2011
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 63
    Points : 36
    Points
    36
    Par défaut
    je suis en train d'essayer de voir ça mais pour le moment je nage complètement :/
    personne n'aurait un exemple de syntaxe ?

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mai 2011
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 63
    Points : 36
    Points
    36
    Par défaut
    super, j'ai réussi avec le preg_replace et limit ! merci

    Maintenant, comment privilégier les combinaisons de mots ?
    car mon nouveau code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $texte = "J'ai une jolie laisse. Je fais de l'élevage de chien, je vais me servire de ma laisse.";
    $query = mysql_query("SELECT mot FROM table");
    		while ($result = mysql_fetch_array($query)){
    			$texte = preg_replace('#'.$result['mot'].'#'., '<b>'.$result['mot'].'</b>', $result['mot'], 1);
    		}
    echo $texte;
    me retourne ceci :
    J'ai une jolie laisse. Je fais de l'élevage de chien, je vais me servire de ma laisse
    Un seul mot "laisse" en gras ok, mais il faudrait que "élevage de chien" soit en gras et non pas "chien" :/

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Le script est très bête : il va faire exactement ce que tu lui demandes. Il faut donc que tu définisses précisément ce qu'est une combinaison de mots.

Discussions similaires

  1. [PHP 5.0] surligner un mot dans les réponses
    Par lavercq dans le forum Langage
    Réponses: 2
    Dernier message: 26/03/2012, 17h38
  2. Réponses: 4
    Dernier message: 05/01/2010, 19h24
  3. [MySQL] Moteur de recherche : surligner les mots clés
    Par lagratteCchouette dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 11/01/2008, 18h15
  4. Surligner les occurences d'un mot
    Par chat_roux dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 22/08/2007, 14h37
  5. [PHP-JS] Surligné les mots demandé
    Par kevinf dans le forum Langage
    Réponses: 29
    Dernier message: 17/09/2006, 17h49

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