Page 1 sur 1

[RegExp] Normalisation

Posté : 28 sept. 2006, 01:07
par ramy
Bonjour,
je cherche le moyen de normaliser une chaine caracteres quelconque suivant ces regles :
+ seulement des minuscules, des chiffres ou des espaces
+ les premieres lettres de chaque mot en majuscule

La ligne : $string = preg_replace('![^a-z0-9]!','',strtolower($string)); supprime les caracteres alors que je voudrais les 'transformer' : par exemple les é et è en e...

De plus, il y a-t-il une solution pour remplacer toutes les premiere lettres par leur majuscule et ne rien faire s'il s'agit d'un chiffre.

Je vais vous donner un exemple afin de bien vous reprensenter ce que je veux faire :
il été_10.p'tits-navires => Il Ete 10 Ptits Navires

Merci de votre aide

Posté : 28 sept. 2006, 07:58
par Cyrano
Pour la premiere lettre en majuscule, utilise ucfirst() : tu peux donc faire :
<?php
//...
$chaine = ucfirst(strtolower($chaine));
//...
?>

Posté : 28 sept. 2006, 09:13
par titerm
regle 1, effectivement, regexp,

converti en minuscule et suprime tout ce qui n'est pas alpha numérique ou espacement (space tabulation )
$string = preg_replace('/[^\w\s]/','',strtolower($string));
ensuite, pour la première lettre de chaque mot en majuscule.
$string = ucwords($string) 

Posté : 28 sept. 2006, 10:59
par ramy
Merci beaucoup de votre aide ^^