"Georges", "JOSEPH" -> "Joseph", "jean-marc" -> "Jean-Marc". // Tout le reste en minuscules, une majuscule après le début de la chaîne et // après chaque tiret ou espace (pour les prénoms composés). Volontairement // pas de ucwords() : cette fonction native de PHP n'est pas fiable en UTF-8 // (elle raisonne en octets, pas en caractères — un prénom commençant par une // lettre accentuée type "Éric" serait corrompu). function consigne_premiere_lettre_majuscule(string $valeur): string { $valeur = mb_strtolower($valeur, 'UTF-8'); return (string)preg_replace_callback( '/(^|[\s\-])(\p{L})/u', function (array $m): string { return $m[1] . mb_strtoupper($m[2], 'UTF-8'); }, $valeur ); }