[RESOLU] Changer la casse d'un caractère

Eléphanteau du PHP | 40 Messages

30 sept. 2016, 12:31

Bonjour bonjour,

Je suis de retour avec un problème stupide. En fait je traite les noms et prénoms de plusieurs personne.
Si c'est un nom, je fais un strtoupper, et si c'est un prénom, un strlower, le problème c'est que strtolower me met tout en minuscule mais je veux garder la majuscule en début de prénom.

Débarquant tout droit du C, j'ai bien essayé un -= 32 sur le caractère, mais php a pas l'air d'aimer, du coup je ne vois pas très bien comme on est supposer faire ça en php :|

Code : Tout sélectionner

function checkContactName(&$line) { if (empty($line[11]) || !preg_match('#[A-Za-z]#', $line[11])) { $line[11] = "TBD"; } else { $line[11] = strtolower(trim($line[11])); $line[11][0] -= 32; } if (empty($line[12]) || !preg_match('#[A-Za-z]#', $line[12])) { $line[12] = "TBD"; } else { $line[12] = strtoupper(trim($line[12])); } }

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

30 sept. 2016, 12:38

salut,

as tu simplement essayé
<?php
 $line[11][0] = strtoupper( $line[11][0]);
exemple
<?php
 $line[11] = 'toto';
 $line[11][0] = strtoupper($line[11][0]);
var_dump($line);
retourne Toto

@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 40 Messages

30 sept. 2016, 13:54

salut,

as tu simplement essayé
<?php
 $line[11][0] = strtoupper( $line[11][0]);
exemple
<?php
 $line[11] = 'toto';
 $line[11][0] = strtoupper($line[11][0]);
var_dump($line);
retourne Toto

@+
Ah, ouai, j'ai tendance à oublier qu'un caractère c'est une chaine de caractères de 1 caractère, du coup quand ça demande un string je pense pas forcément au fait que ça puisse marcher avec un simple caractère :roll:
Thanks

Mammouth du PHP | 2703 Messages

30 sept. 2016, 14:20

un prénom peut-être composé.
il existe la fonction http://php.net/manual/fr/function.ucwords.php