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 :

[PHP-JS] Surligné les mots demandé [Fait]


Sujet :

Langage PHP

  1. #1
    Membre actif Avatar de kevinf
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    863
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 863
    Points : 225
    Points
    225
    Par défaut [PHP-JS] Surligné les mots demandé
    Salut,

    je voudrais faire un truc pour que si dans l'url on voit :

    page.php?surligne=mot
    ou
    page.php?surligne=mot&phrase

    Et bien pour la première tout les mots "mot" seront surligné en jaune, et pour la deuxième, tout les mots "mot" et "phrase" seront en jaune.

    Comment faire cela?

    Merci
    KevinF

  2. #2
    Membre averti
    Inscrit en
    Janvier 2004
    Messages
    533
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 533
    Points : 313
    Points
    313
    Par défaut
    Bonjour,

    je ne vois pas d'autre solution que de faire un str_replace() de ton contenu en remplaçant "mot" par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <span class="jaune">mot</span>
    Avec en feuille de style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    .jaune {
         background-color: yellow;
    }
    N'oubliez pas le tag .
    Merci de ne pas envoyer de MP pour des problèmes techniques.

  3. #3
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Ou il existe la solution regexp avec preg_replace voici un exemple d'utilisation : Comment parser un bbcode ?
    Ou même tu peux avoir plus d'informations dans le tutoriel suivant : Initiation aux expressions régulières en PHP

  4. #4
    Membre actif Avatar de kevinf
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    863
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 863
    Points : 225
    Points
    225
    Par défaut
    Mais ce que je veux c'est surligné les mots recherché par un client, en tenant compte que la page change en permance de textes, donc ne rien modifier dans le code a chaque fois.
    KevinF

  5. #5
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Ben si justement tu veux modifier le texte qui entoure le mot recherché.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $mot_search = $_GET['mot'];
    str_replace($mot_search, '<i>'.$mot_search.'</i>', $page);

  6. #6
    Membre actif Avatar de kevinf
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    863
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 863
    Points : 225
    Points
    225
    Par défaut
    Je vais faire un exemple, j'ai cette page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <html>
    <head></head>
    <body>
    ici le texte 
    <br>
    et aussi des mots et un mot
    <br>
    avec plein de phrases et des verbes
    <br>
    ...
    </body></html>
    Je voudrais que quand j'appelle cette page, du style page.php?surligne=verbes
    et bien le mot "verbes" soit surligné mais je ne veux pas de code php dans body mais uniquement dans head afin qu'il surligne tout les mots de la page qui a été demandé dans l'url.
    KevinF

  7. #7
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Dans ta page tu crées une variable qui contient le contenu, tu le traite et dans le body tu l'affiches. Ca peut le faire ca, non ?

  8. #8
    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 778
    Points
    17 778
    Par défaut
    Citation Envoyé par Kerod
    Ben si justement tu veux modifier le texte qui entoure le mot recherché.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $mot_search = $_GET['mot'];
    str_replace($mot_search, '<i>'.$mot_search.'</i>', $page);
    Par contre, s'il ne veut pas par exemple de le contenu dans les, il faudra utiliser quelque chose de ce style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if (isset($_GET['surligne'])) {
        $text = preg_replace('.\b(' . preg_quote($_GET['surligne']) . ')\b.', '<span style="color: red">$1</span>', $text);
    }

    Julp.

  9. #9
    Membre actif Avatar de kevinf
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    863
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 863
    Points : 225
    Points
    225
    Par défaut
    Tu peux me montrer une exemple?
    KevinF

  10. #10
    Membre actif Avatar de kevinf
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    863
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 863
    Points : 225
    Points
    225
    Par défaut
    Non?
    KevinF

  11. #11
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Tu as déjà les exemples nécessaires il reste plus qu'à faire un echo

  12. #12
    Membre actif Avatar de kevinf
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    863
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 863
    Points : 225
    Points
    225
    Par défaut
    Regarde, je crois que vous ne m'avez pas compris, exemple :
    http://www.developpez.net/forums/sho...ighlight=salut
    Je vourais le meme style pour mes pages web.
    KevinF

  13. #13
    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 778
    Points
    17 778
    Par défaut
    Avec les fonctions de cache ob_* ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <?php
    $cache = isset($_GET['surligne']);
    if ($cache) {
        ob_start();
    }
    ?>
     
    <!-- ICI le contneu de ma page -->
     
    <?php
    if ($cache) {
        $out = ob_get_clean();
        echo preg_replace('.\b(' . preg_quote($_GET['surligne']) . ')\b.', '<span style="color: red">$1</span>', $out);
    }
    ?>

    Julp.

  14. #14
    Membre éprouvé Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Points : 952
    Points
    952
    Par défaut
    Citation Envoyé par kevinf
    Regarde, je crois que vous ne m'avez pas compris, exemple :
    http://www.developpez.net/forums/sho...ighlight=salut
    Je vourais le meme style pour mes pages web.
    Si on a très bien compris ce que tu voulais faire, mais je pense que tu n'as pas compris la solution que l'on t'a proposé.

    Il faut de toute façon que tu modifie la page php pour que le text soit parsé et les mots désirés soulignés

    Si tu ne veux pas toucher à la partie html, il ne te reste que le Javascript ou d'initier tes utilisatuers à la touche F3

    Pierre
    Pierre
    1. Dans le manuel ( PHP, MySQL,..., rayez la mention inutile), tu te plongeras à deux fois plutôt qu'aucune.
    2. Dans la doc php, tu liras attentivement les sections Chaines de caractères, Tableaux et Système de fichiers
    3. Un code rapide c'est bien, un code maintenable c'est mieux
    ...

    Why was the font tag an orphan ? Because it didn't have a font-family.

  15. #15
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    D'ailleurs la réponse de Julp est meilleure que la mienne car on passe par un cache ce qui peut s'avérer utile plus loin.

    Là tu as la meilleure solution possible il te reste plus qu'à l'adapter.

    Sinon pour le lien que tu donnes c'est exactement comme ça que ca fonctionne :
    1. Récupération du texte de chaques posts dans la bdd
    2. Traitement pour rajouter les balises autour
    3. Enfin l'affichage.
    Par contre faut savoir que là c'est pas fait dans le header pour être affiché dans le body.

  16. #16
    Membre actif Avatar de kevinf
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    863
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 863
    Points : 225
    Points
    225
    Par défaut
    Merci beaucoup à tous et surtout à julp.
    KevinF

  17. #17
    Membre actif Avatar de kevinf
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    863
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 863
    Points : 225
    Points
    225
    Par défaut
    Encore une petite question, j'ai mis cela pour faire la recherche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <form action="">
    <font size=3><input name="surligne" type="text" size="30" value=""></font>
    <input type="submit" value="Rechercher" name="surligne">
    </form>
    Mais quand le client ne mais rien et clique sur recherche, cela bug, pouvez vous me dire d'où ca vient?
    Ou sinon, comment faire pour désactiver le bouton Rechercher si le champ est vide, voir meme une alerte disant : Entrez un mot! ?

    Merci
    KevinF

  18. #18
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Tu vérifies si le champ est vide avec empty($le_champ) ou strlen($le_champ) == 0...

  19. #19
    Membre actif Avatar de kevinf
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    863
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 863
    Points : 225
    Points
    225
    Par défaut
    Y'a pas un autre moyen que de le faire en php?
    KevinF

  20. #20
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Si direction javascript.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (document.getElementById("ton_champ").value == '') alert('Remplissez le champ');
    Mais si le client ne l'a pas activé alors ça sert à rien.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [RegEx] str_replace complexe : surligner les mots
    Par maxence64 dans le forum Langage
    Réponses: 4
    Dernier message: 29/11/2011, 14h40
  2. Réponses: 4
    Dernier message: 11/01/2010, 11h04
  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. [PHP-JS] le C de MVC - gérer les URLs demandées
    Par sir_gcc dans le forum Langage
    Réponses: 3
    Dernier message: 22/11/2006, 19h32

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