Problème d'espaces en trop avec preg_replace()

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par Seraph, 16 Novembre 2011.

  1. Seraph
    Seraph WRInaute occasionnel
    Inscrit:
    2 Avril 2006
    Messages:
    307
    J'aime reçus:
    0
    Bonjour,
    Je fais une fonction qui permet de mettre en gras des mots clés dans un texte automatiquement. Le soucis est qu'avec mon expression, je me retrouve avec un espace de chaque côté du mot clé et je ne sais pas trop comment les éviter.

    Le code est le suivant :
    Code:
    $text = preg_replace('`[^\/\-\.a-zA-z0-9\>]'.$search.'([a-zA-Z]*[^\<])`iu', '<strong>$0</strong>', $text);
    exemple :
    Code:
    $search = 'test';
    $text = "ceci est un 'test pour mon preg_replace";
    
    Ca affichera :
    ceci est un<strong>'test </strong>pour mon preg_replace
    au lieu de 
    ceci est un '<strong>test</strong> pour mon preg_replace
    Les caractères (dans ce cas : apostrophe puis espace) jouxtant le mot clé sont du mauvais côté de la balise strong...
    Si quelqu'un sait comment empêcher le preg_replace d'inclure un caractère avant et après $search dans le strong, je suis preneur !


    Bonne journée,
    Seraph.
     
  2. forty
    forty WRInaute passionné
    Inscrit:
    30 Octobre 2008
    Messages:
    1 901
    J'aime reçus:
    0
    tu peux pas tout simplement mettre :
    Code:
    $text = preg_replace('/' . preg_quote($search, '/') . '/iu', '<strong>$0</strong>', $text);
     
  3. Seraph
    Seraph WRInaute occasionnel
    Inscrit:
    2 Avril 2006
    Messages:
    307
    J'aime reçus:
    0
    Merci pour ta réponse,
    Non en fait je ne peux pas, parce que si, par exemple, j'ai :

    Code:
    $search = 'test';
    $text = "http://www.test.com";
    
    Ca m'affichera : http://www<strong>.test.</strong>.com
    Mon lien deviendra incliquable...
    (les liens http sont automatiquement transformés en hyperliens dans la suite du script)
     
  4. forty
    forty WRInaute passionné
    Inscrit:
    30 Octobre 2008
    Messages:
    1 901
    J'aime reçus:
    0
    tu peux utiliser \b (limite de mot) :
    Code:
    $text = preg_replace('/(\b)(' . preg_quote($search, '/') . ')(\b)/iu', '$1<strong>$2</strong>$3', $text);
    ou faire comme tu avais fait :
    Code:
    $text = preg_replace('/([^\/\-\.a-zA-z0-9\>])(' . preg_quote($search, '/') . ')([a-zA-Z]*[^\<])/iu', '$1<strong>$2</strong>$3', $text);
     
  5. Seraph
    Seraph WRInaute occasionnel
    Inscrit:
    2 Avril 2006
    Messages:
    307
    J'aime reçus:
    0
    Helas non, ça fait pareil, ça me met les balises au milieu d'un lien si le mot clé est dedans...
    Tu sais où je peux trouver une liste de toutes ces règles \b \s \d \w etc. ? Je ne sais même pas comment ça s'appelle, j'ai jamais trouvé...
     
  6. forty
    forty WRInaute passionné
    Inscrit:
    30 Octobre 2008
    Messages:
    1 901
    J'aime reçus:
    0
    =>http://fr2.php.net/manual/fr/regexp.reference.escape.php

    a mon avis le seul séparateur qui doit aller c'est \s (tout caractère blanc)
     
Chargement...
Similar Threads - Problème espaces preg_replace() Forum Date
problème retour à la ligne avec certains espaces Développement d'un site Web ou d'une appli mobile 30 Mars 2007
Firefox: problème d'espaces entre images Développement d'un site Web ou d'une appli mobile 25 Décembre 2006
Problème %20 lié aux espaces URL Rewriting et .htaccess 18 Mai 2005
WordPress Problème affichage style avec Elementor (titre, bordures, separateur) Administration d'un site Web Lundi à 12:12
Problème d'indexation de backlinks Débuter en référencement 24 Juillet 2022
Problème d'indexation de backlinks Problèmes de référencement spécifiques à vos sites 21 Juillet 2022
Probleme de visibilité de ma page Facebook Facebook 5 Juillet 2022
problème avec le développeur Droit du web (juridique, fiscalité...) 22 Juin 2022
Problème désindexation des pages de Google Débuter en référencement 21 Juin 2022
Problème d'indexation de pages sur Google Problèmes de référencement spécifiques à vos sites 31 Mai 2022
problème de redirection non souhaitée Administration d'un site Web 28 Avril 2022
Problème d'indexation Produits Prestashop Crawl et indexation Google, sitemaps 28 Avril 2022
Problème d'affichage des campagnes Google Ads dans un tableau de bord Data Studio AdWords 26 Avril 2022
Problème de vitesse d'affichage des pages sur Analytics Google Analytics 26 Avril 2022
Problème : Google Crawl et Index des pages en No Index et bloqué par le robot.txt Crawl et indexation Google, sitemaps 26 Avril 2022
Problème avec GA4 : nb de visiteurs temps réel et par jour Google Analytics 19 Avril 2022
Problème indexation pages précises en React.js Débuter en référencement 19 Avril 2022
Problème de référencement Demandes d'avis et de conseils sur vos sites 8 Avril 2022
Problème adsence : Annonces ne s'affichent plus AdSense 10 Mars 2022
problèmes procédures stockées Administration d'un site Web 9 Mars 2022