Premières lettres en majuscules

Résolu/Fermé
philipf - 1 juil. 2019 à 16:45
 philipf - 2 juil. 2019 à 11:47
Bonjour,
Les noms et les prénoms peuvent être composés soit avec un espace, soit avec un tiret soit avec une apostrophe : comme par exemple Zazi pour son nom : de Truchis de Varennes.
Pour les prénoms ils peuvent écris Marie Paule ou Jean-Pierre.

ucfirst($string) : seulement pour la première lettre
ucwords ($string) : les première de chaque mot. c'est ok pour Marie Paume mais pas pour Jean-pierre.

Comment écrire Jean-Pierre si l'utilisateur écrit jean-pierre ?
J'ai déjà cherché mais pas vraiment trouvé la réponse à cette question

Configuration: Windows / Chrome 75.0.3770.100
A voir également:

4 réponses

Bonjour et merci pour la réponse.
J'avais bien trouvé une solution mais celle-ci est plus simple.
je l'ai adaptée pour qu'elle réponde à des prénoms à espaces et des prénoms simples
$name = "jean-pierre"; 
$find = '-';
$position = strpos($name, $find);//donne la position de la lettre suivant $trouve
if ($position === false) { // si $find n'existe pas 
	$name = ucwords($name); // on met une majuscule à tous les noms
}
else {
	$split = explode("-", $name); 
	$name1 = ucfirst($split[0]); 
	$name2 = ucfirst($split[1]); 
	$name = $name1."-".$name2; 
}
echo $name;
1
Et si le nom est o'conell, comment écrire O'Conell comme beaucoup de noms irlandais ?
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
1 juil. 2019 à 16:50
Bonjour,
Le plus simple... tu SPLIT (explode ) en utilisant le tiret comme séparateur.
Tu mets chaque mot en majuscule puis te refais un JOIN

0
$name = "jean-pierre";
$split = explode("-", $name);
$name1 = ucfirst($split[0]);
$name2 = ucfirst($split[1]);
$name = $name1."-".$name2;
echo $name;
0
JCB40 Messages postés 2878 Date d'inscription lundi 2 juillet 2018 Statut Membre Dernière intervention 20 avril 2024 461
1 juil. 2019 à 16:55
0