Php: Expressions régulières et accents
Fermé
yveslands
Messages postés
7
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
29 avril 2014
-
11 janv. 2013 à 03:27
yveslands - 14 janv. 2013 à 09:23
yveslands - 14 janv. 2013 à 09:23
A voir également:
- Php: Expressions régulières et accents
- Easy php - Télécharger - Divers Web & Internet
- \R php ✓ - Forum PHP
- Br php ✓ - Forum PHP
- Expert php - Télécharger - Langages
- Php echo image ✓ - Forum PHP
5 réponses
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
11 janv. 2013 à 13:04
11 janv. 2013 à 13:04
Bonjour,
Une piste : indique que l'expression rationnelle s'applique sur des caractères Unicode avec le modificateur u :
$words = preg_split("/[\s,-]+/u", $words);
$pattern = '#(?!<.*?)(%s)(?![^<>]\p{L}*?>)#iu';
Vérifie également que ton fichier php est bien encodé en UTF-8, de même que le fichier php qui appelle ta fonction.
Xavier
Une piste : indique que l'expression rationnelle s'applique sur des caractères Unicode avec le modificateur u :
$words = preg_split("/[\s,-]+/u", $words);
$pattern = '#(?!<.*?)(%s)(?![^<>]\p{L}*?>)#iu';
Vérifie également que ton fichier php est bien encodé en UTF-8, de même que le fichier php qui appelle ta fonction.
Xavier
yveslands
Messages postés
7
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
29 avril 2014
Modifié par yveslands le 11/01/2013 à 13:29
Modifié par yveslands le 11/01/2013 à 13:29
Merci pour ta réponses mais ça n'a pas fonctionner. j'obtiens tjrs ces bizarres losanges avec des points d'interrogations à l'intérieur.
Ok c bon. les erreurs d'accents apparaissent si $words est vide. une simple condition if avant l'affichage règle ce problème. Mais il en demeure un autre. Quand j'execute le code avec
rien ne se passe pourtant il existe 'Córdoba' dans la chaine de recherche. voici ma regex
est-ce correct?
$text = 'cordoba'
rien ne se passe pourtant il existe 'Córdoba' dans la chaine de recherche. voici ma regex
$pattern = '#(?!<.*?)(%s)(?![^<>]\p{L}*?>)#iu';
est-ce correct?
Stanislas Poisson
Messages postés
424
Date d'inscription
samedi 1 décembre 2012
Statut
Membre
Dernière intervention
22 mai 2018
66
14 janv. 2013 à 09:04
14 janv. 2013 à 09:04
Tu est en utf8 visiblement. au debut de t'est fichier principeaux, place ce code
en le mettant bien sur en adéquation avec ton encodage.
cela permettra d'utiliser les versions mb_ des fonction php tel que mb_strtolower($a,'UTF-8');.
pour la regex, essaye avec
mb_internal_encoding('UTF-8');
en le mettant bien sur en adéquation avec ton encodage.
cela permettra d'utiliser les versions mb_ des fonction php tel que mb_strtolower($a,'UTF-8');.
pour la regex, essaye avec
$str=preg_replace($regex,$highlight,utf8_decode($str));
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci pour ta réponse Stanislas. Mais je n'ai plus de problème d'affichage. J'aimerais juste pouvoir mettre les mots qui contiennent des caractères accentués en gras. Comme je le disais tantôt si ma chaîne contient 'Córdoba' rien ne se passe si je fait
highlight('cordoba', $chaîne). j'aimerai que ma regex considère cordoba et Córdoba comme une même chaîne.
Merci
highlight('cordoba', $chaîne). j'aimerai que ma regex considère cordoba et Córdoba comme une même chaîne.
Merci