Fonction preg_match et gestion des accents

Mila
Invité n'ayant pas de compte PHPfrance

10 août 2010, 11:01

Bonjour,

J'utilise la fonction preg_match pour récupérer le premier mot d'une phrase...seulement celle-ci s'arrête quand elle rencontre un caractère accentué.

Voici la fonction :

Code : Tout sélectionner

<?php $texte = $this->result['var_intitule']; $mot = ''; if (preg_match('/^(.+)\b/U', $texte, $matches)) { $mot = $matches[1]; } else { $mot = $texte; # Pour parer tout éventualité } echo $mot; ?>
Je m'explique si le $texte= école alors $mot=é, comment récupérer le mot en entier?

Merci d'avance!

Mila

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

10 août 2010, 14:26

Pourquoi ne pas utiliser explode() ? ça me paraît plus logique et plus simple que d'utiliser une expression régulière :)

Mila
Invité n'ayant pas de compte PHPfrance

10 août 2010, 14:38

oui merci j'avais trouvé!

ViPHP
ViPHP | 5462 Messages

10 août 2010, 15:40

pour l'unicode c'est "u" (en minuscule) :wink:

Mila
Invité n'ayant pas de compte PHPfrance

10 août 2010, 16:02

Comment "exploder" plusieurs caractères dans une phrase.

Exemple:

maPhrase= école/ouverte de la ville.
je veux qu'il me récupère que le mot école? pour l'instant il me récupère école/ouverte ...ce qui est faut mais je vais pas faire des explode d'explode à l'infini??

PS: à la place de "/" je pourrai avoir un "-" une "," ou encore "(".

Merci d'avance!

ViPHP
ViPHP | 5462 Messages

10 août 2010, 16:12

c'est bien un preg_match dans ton cas

la limite de mot étant \b, ca donnerai : /^\b(\w+)\b/u

Mila
Invité n'ayant pas de compte PHPfrance

10 août 2010, 16:37

Merci!