Fonction explode
Résolu
t671
Messages postés
1476
Date d'inscription
Statut
Membre
Dernière intervention
-
t671 Messages postés 1476 Date d'inscription Statut Membre Dernière intervention -
t671 Messages postés 1476 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Dans mon script, où je saisi une identité, j'utilise la fonction "explode" pour le prénom, de façon à mettre une majuscule pour le début de chaque prénom. En supposant qu'il y ait un maximum de 4 prénoms par individus :
Si en plus j'ai des prénoms composés, donc séparés par un trait d'union :
Mais cela ne fonctionne que si j'ai un seul prénom composé !
Comment faire si j'en ais 2 ou 3 ???
Merci.
Dans mon script, où je saisi une identité, j'utilise la fonction "explode" pour le prénom, de façon à mettre une majuscule pour le début de chaque prénom. En supposant qu'il y ait un maximum de 4 prénoms par individus :
$prenom = strtolower($prenom); $prenom = explode(" ", $prenom); $prenom0 = UcFirst($prenom[0]); $prenom1 = UcFirst($prenom[1]); $prenom2 = UcFirst($prenom[2]); $prenom3 = UcFirst($prenom[3]); $prenom = ("$prenom0 $prenom1 $prenom2 $prenom3"); $prenom = trim($prenom);
Si en plus j'ai des prénoms composés, donc séparés par un trait d'union :
$prenom = explode("-", $prenom); $prenom0 = UcFirst($prenom[0]); $prenom1 = UcFirst($prenom[1]); $prenom = ("$prenom0-$prenom1");
Mais cela ne fonctionne que si j'ai un seul prénom composé !
Comment faire si j'en ais 2 ou 3 ???
Merci.
A voir également:
- Fonction explode
- Fonction si et - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Fonction remplacer sur word - Guide
- Fonction somme excel - Guide
14 réponses
Bonjour, ce que tu veux c'est mettre une majuscule après chaque '-' c'est ça?
Si oui pour ma part je m'orienterais vers du traitement de la chaîne en manuel.
Si oui pour ma part je m'orienterais vers du traitement de la chaîne en manuel.
Bonjour,
Essaye ça :
Essaye ça :
$prenom = strtolower($prenom); // On met la 1ere lettre en majuscule $prenom = UcFirst($prenom); // Puis on recherche les autres $prenom = preg_replace("#(\s|-)([a-z])#", strtoupper($2), $prenom);
Pour gardiendelanuit : oui, je veux mettre une majuscule après chaque "-".
Pour Mihawk: en testant ton code, j'ai l'erreur :
Parse error: syntax error, unexpected T_LNUMBER, expecting T_VARIABLE or '$'
Pour Mihawk: en testant ton code, j'ai l'erreur :
Parse error: syntax error, unexpected T_LNUMBER, expecting T_VARIABLE or '$'
J'ai testé avec 3 prénoms contenant un "-" + un prénom normal : Toutes les lettres des prénoms forment un seul mot .............
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Dans ton dernier exemple, si je rentre comme prénom : dd-ff yy-ff ss-ll ffffff (soit 3 prénoms composés + 1 prénom entier)
j'ai comme résultat : Dd-ff yy-ff ss-ll ffffff (soit le premier prénom du premier prénom composé qui prend la majusculmez).
Alors que j'aurais attendu : Dd-ff Yy-ff Ss-ll Ffffff
j'ai comme résultat : Dd-ff yy-ff ss-ll ffffff (soit le premier prénom du premier prénom composé qui prend la majusculmez).
Alors que j'aurais attendu : Dd-ff Yy-ff Ss-ll Ffffff
Ben non ......
En fait, je fait d'abord un explode de " " pour le cas où il y ait plusieurs prénoms (que je limite à 4)
Ensuite, il faudrait fire un explode de "-" pour les prénoms composés .......
En fait, je fait d'abord un explode de " " pour le cas où il y ait plusieurs prénoms (que je limite à 4)
$prenom = strtolower($prenom); $prenom = explode(" ", $prenom); $prenom0 = UcFirst($prenom[0]); $prenom1 = UcFirst($prenom[1]); $prenom2 = UcFirst($prenom[2]); $prenom3 = UcFirst($prenom[3]); $prenom = ("$prenom0 $prenom1 $prenom2 $prenom3");
Ensuite, il faudrait fire un explode de "-" pour les prénoms composés .......
$prenom = strtolower('dd-ff yy-ff ss-ll ffffff');
$a = explode(' ', $prenom);
$pre = array();
foreach($a as $b){
$c = explode('-', $b);
$f = '';
foreach($c as $e => $d){
if($e>0){
$f .= '-';
}
$f .= UcFirst($d);
}
$pre[] = $f;
}
//$pre array qui contient tout tes noms.
//De rien ;)
$a = explode(' ', $prenom);
$pre = array();
foreach($a as $b){
$c = explode('-', $b);
$f = '';
foreach($c as $e => $d){
if($e>0){
$f .= '-';
}
$f .= UcFirst($d);
}
$pre[] = $f;
}
//$pre array qui contient tout tes noms.
//De rien ;)
Balaise .............
Par contre, j'ai remplacé $prenom = strtolower('dd-ff yy-ff ss-ll ffffff'); par $prenom = strtolower('$prenom');
Et à la fin, je me retrouve à afficher comme prénom "$prenom" ????
Par contre, j'ai remplacé $prenom = strtolower('dd-ff yy-ff ss-ll ffffff'); par $prenom = strtolower('$prenom');
Et à la fin, je me retrouve à afficher comme prénom "$prenom" ????
Je pense que tu as été confusionné par les simple et les doubles quotes.
Les simples quotes sont légèrement plus rapide a mouliner, mais les doubles quotes interpètent les $variables que tu passe dedans..
Marche :
$prenom = strtolower($prenom);
$prenom = strtolower("$prenom"); (Mais inutile)
Marche pas :
$prenom = strtolower('$prenom');
Les simples quotes sont légèrement plus rapide a mouliner, mais les doubles quotes interpètent les $variables que tu passe dedans..
Marche :
$prenom = strtolower($prenom);
$prenom = strtolower("$prenom"); (Mais inutile)
Marche pas :
$prenom = strtolower('$prenom');
On reprend mon code :
$prenom = 'Définir ici les prénoms, je suppose que tu les récupère depuis un formulaire ou une BDD');
//Pas touche v
$prenom = strtolower($prenom);
$a = explode(' ', $prenom);
$pre = array();
foreach($a as $b){
$c = explode('-', $b);
$f = '';
foreach($c as $e => $d){
if($e>0){
$f .= '-';
}
$f .= UcFirst($d);
}
$pre[] = $f;
}
//Pas touche ^
//Et la tu fais ce que tu veux avec $pre
$prenom = 'Définir ici les prénoms, je suppose que tu les récupère depuis un formulaire ou une BDD');
//Pas touche v
$prenom = strtolower($prenom);
$a = explode(' ', $prenom);
$pre = array();
foreach($a as $b){
$c = explode('-', $b);
$f = '';
foreach($c as $e => $d){
if($e>0){
$f .= '-';
}
$f .= UcFirst($d);
}
$pre[] = $f;
}
//Pas touche ^
//Et la tu fais ce que tu veux avec $pre
Mais alors :
Où est l'erreur ????
$prenom = $_POST["prenom"]; $prenom = strtolower($prenom); $a = explode(' ', $prenom); $pre = array(); foreach($a as $b){ $c = explode('-', $b); $f = ''; foreach($c as $e => $d){ if($e>0){ $f .= '-'; } $f .= UcFirst($d); } $pre[] = $f; }
Où est l'erreur ????
OK ! En fait, c'est effectivement à l'enregistrement que j'ai un problème.
Si je fais
J'ai tous mes prénoms en minuscule => normal !
Si j'écris
je n'ai que le dernier prénom ! (avec les majuscules bien placées) .......
Si je fais
$sql = "INSERT INTO individus (prenom) VALUES('$prenom')";
J'ai tous mes prénoms en minuscule => normal !
Si j'écris
$sql = "INSERT INTO individus (prenom) VALUES('$f')";
je n'ai que le dernier prénom ! (avec les majuscules bien placées) .......
OKK Quoquo ! Ca fonctionne.
Mais si dans les prénoms, il y en a un qui n'est pas composé, il ne s'affiche pas ........ !!??
Mais si dans les prénoms, il y en a un qui n'est pas composé, il ne s'affiche pas ........ !!??
Les prénoms se trouvent dans $pre, pas dans $f.
$prenoms = '';
foreach($pre as $p){
$prenoms .= $p;
}
Et la ta variables $prenoms a tout dedans
$prenoms = '';
foreach($pre as $p){
$prenoms .= $p;
}
Et la ta variables $prenoms a tout dedans
Alors là, j'comprends plus rien .................
Par rapport à
et
que dois-je écrire ??? Faire un amalgame des deux ???
Par rapport à
$prenom = strtolower($prenom); $a = explode(' ', $prenom); $pre = array(); foreach($a as $b){ $c = explode('-', $b); $f = ''; foreach($c as $e => $d){ if($e>0){ $f .= '-'; } $f .= UcFirst($d); } $pre[] = $f; }
et
$prenoms = ''; foreach($pre as $p){ $prenoms .= $p; }
que dois-je écrire ??? Faire un amalgame des deux ???
Je pense qu'il te manque certaines bases, je n'ai pas de tutorial a te proposer comme ça, mais mine de rien, les bases, c'est important.
Le code que je t'ai donné fabrique un array (Donc un tableau) ou sont stockés tout les prenoms
Le second code formate tout les prenoms récupéré en une seule chaine (Donc similaire a ce que tu lui injecte au tout début, j'ai donc présumé que c'était aussi ce que tu souhaitais avoir dans ta base)
Le code que je t'ai donné fabrique un array (Donc un tableau) ou sont stockés tout les prenoms
Le second code formate tout les prenoms récupéré en une seule chaine (Donc similaire a ce que tu lui injecte au tout début, j'ai donc présumé que c'était aussi ce que tu souhaitais avoir dans ta base)