Premières lettres en majuscules

Résolu
philipf -  
 philipf -
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

4 réponses

  1. philipf
     
    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
    1. philipf
       
      Et si le nom est o'conell, comment écrire O'Conell comme beaucoup de noms irlandais ?
      0
  2. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    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
  3. Logow974
     
    $name = "jean-pierre";
    $split = explode("-", $name);
    $name1 = ucfirst($split[0]);
    $name2 = ucfirst($split[1]);
    $name = $name1."-".$name2;
    echo $name;
    0