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 :

Encodage et utilisation de preg_replace()


Sujet :

Langage PHP

  1. #1
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut Encodage et utilisation de preg_replace()
    Bonjour à tous,

    j'essaye de modifier une chaine à l'aide de preg_replace.
    Le but (en résumé) est de rajouter une balise <dfn> utilisant une BDD...
    exemple :
    Qu'est-ce que l'univers ? L'université, etc...
    devient
    Qu'est-ce que l'<dfn title="blabla">univers</dfn> ? L'université, etc...
    Pour mes tests, j'ai donc essayé avec un simple <SPAN> comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $terme = "AB";
    $texte = "Qu'est-ce que l'univers ? L'université, etc... ";
     
    $motif = "`([\W\s])(".$terme.")([\W\s])`i";
    $texte = preg_replace($motif, ' $1<span style="color:#0033CC66;">$2</span>$3 ', $texte);
    echo $texte;
    mais cela ne semble pas bon...

    Dans certains cas (avec d'autres textes), j'obtiens des "losanges avec ?"...
    Ce qui laisse présagé un problème d'encodage.

    Ma page est en UTF-8 et je test en local sous WAMP1.7.2
    J'ai essayé avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setlocale(LC_CTYPE, 'fr_FR.UTF8');
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setlocale(LC_ALL, 'fr_FR');
    mais rien n'y fait...

    Une idée ?
    Merci d'avance car je cherche depuis ce matin et ça me prend la tête.
    @+

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 243
    Points : 15 545
    Points
    15 545
    Par défaut
    cette fonction ne fait pas de modification d'encodage de ce genre donc tu as sûrement un problème de déclaration de l'encodage

  3. #3
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut
    nan je suis sur du reste...

    d'après mes derniers tests, il semblerait que cela soit du aux "espaces blancs" (avant $1 et après $3) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $texte = preg_replace($motif, ' $1<span>$2</span>$3 ', $texte);

Discussions similaires

  1. Problème d'encodage, comment utiliser Encoding?
    Par Tenguryu dans le forum C#
    Réponses: 3
    Dernier message: 01/09/2008, 00h37
  2. [RegEx] Utilisation de preg_replace()
    Par ShuTruK dans le forum Langage
    Réponses: 7
    Dernier message: 30/01/2008, 21h04
  3. [RegEx] Utilisation de preg_replace
    Par fadex dans le forum Langage
    Réponses: 3
    Dernier message: 06/01/2007, 10h50
  4. [RegEx] utilisation de preg_replace
    Par magdalena dans le forum Langage
    Réponses: 1
    Dernier message: 30/08/2006, 14h43
  5. [RegEx] utilisation de preg_replace sur des balises
    Par Kerod dans le forum Langage
    Réponses: 5
    Dernier message: 09/12/2005, 13h46

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