Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/01/2008, 15h05   #1
Membre habitué
 
Inscription : octobre 2005
Messages : 641
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 641
Points : 143
Points : 143
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 :
Citation:
Qu'est-ce que l'univers ? L'université, etc...
devient
Citation:
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 :
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 :
setlocale(LC_CTYPE, 'fr_FR.UTF8');
ou
Code :
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.
@+
Tchupacabra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2008, 16h15   #2
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
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
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2008, 16h52   #3
Membre habitué
 
Inscription : octobre 2005
Messages : 641
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 641
Points : 143
Points : 143
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 :
$texte = preg_replace($motif, ' $1<span>$2</span>$3 ', $texte);
Tchupacabra est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h00.


 
 
 
 
Partenaires

Hébergement Web