Fonction explode
Résolu/Fermé
t671
Messages postés
1419
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
26 février 2024
-
30 août 2012 à 11:56
t671 Messages postés 1419 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 26 février 2024 - 2 sept. 2012 à 19:32
t671 Messages postés 1419 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 26 février 2024 - 2 sept. 2012 à 19:32
A voir également:
- Fonction explode
- Fonction si et - Guide
- Fonction somme excel - Guide
- Fonction moyenne excel - Guide
- Fonction trier excel - Guide
- Fonction couleur excel - Guide
14 réponses
gardiendelanuit
Messages postés
1769
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
19 novembre 2016
264
30 août 2012 à 12:00
30 août 2012 à 12:00
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.
Mihawk
Messages postés
4313
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
845
30 août 2012 à 12:02
30 août 2012 à 12:02
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);
t671
Messages postés
1419
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
26 février 2024
11
Modifié par t671 le 30/08/2012 à 12:22
Modifié par t671 le 30/08/2012 à 12:22
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 '$'
Mihawk
Messages postés
4313
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
845
30 août 2012 à 12:26
30 août 2012 à 12:26
Et ç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);
t671
Messages postés
1419
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
26 février 2024
11
30 août 2012 à 13:51
30 août 2012 à 13:51
J'ai testé avec 3 prénoms contenant un "-" + un prénom normal : Toutes les lettres des prénoms forment un seul mot .............
Mihawk
Messages postés
4313
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
845
30 août 2012 à 13:52
30 août 2012 à 13:52
OUPS !
Désolé sans tester c'est pas facile :)
Désolé sans tester c'est pas facile :)
$prenom = strtolower($prenom); // On met la 1ere lettre en majuscule $prenom = UcFirst($prenom); // Puis on recherche les autres $prenom = preg_replace("#(\s|-)([a-z])#", "$1".strtoupper("$2"), $prenom);
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
t671
Messages postés
1419
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
26 février 2024
11
Modifié par t671 le 30/08/2012 à 15:12
Modifié par t671 le 30/08/2012 à 15:12
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
Mihawk
Messages postés
4313
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
845
30 août 2012 à 15:14
30 août 2012 à 15:14
J'ai eu le même soucis sur un programme similaire en Javascript ce matin. Apparemment la méthode strtoupper() ne fonctionne pas dans un preg_replace(), dommage.
Bref, mais du coup dans les prénoms composés tu ne mets pas en majuscules le 2e prénom ?
Bref, mais du coup dans les prénoms composés tu ne mets pas en majuscules le 2e prénom ?
t671
Messages postés
1419
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
26 février 2024
11
30 août 2012 à 15:21
30 août 2012 à 15:21
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 ;)
t671
Messages postés
1419
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
26 février 2024
11
30 août 2012 à 15:31
30 août 2012 à 15:31
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" ????
t671
Messages postés
1419
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
26 février 2024
11
30 août 2012 à 15:37
30 août 2012 à 15:37
Effectivement, j'ai enlevé les guillemets entre les paren thèses, mais aucun des prénoms n'a une majuscule.
Résultat = aaaa dddddddd bbbb-nnn gggg-eeee
Résultat = aaaa dddddddd bbbb-nnn gggg-eeee
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
t671
Messages postés
1419
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
26 février 2024
11
30 août 2012 à 15:40
30 août 2012 à 15:40
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 ????
t671
Messages postés
1419
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
26 février 2024
11
30 août 2012 à 16:08
30 août 2012 à 16:08
Ca fonctionne, mais avec un seul prénom composé.
Si tu en met plusieurs avec des prénoms non composé .............
Si tu en met plusieurs avec des prénoms non composé .............
t671
Messages postés
1419
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
26 février 2024
11
30 août 2012 à 15:51
30 août 2012 à 15:51
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) .......
t671
Messages postés
1419
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
26 février 2024
11
30 août 2012 à 15:57
30 août 2012 à 15:57
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
t671
Messages postés
1419
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
26 février 2024
11
30 août 2012 à 16:14
30 août 2012 à 16:14
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)
t671
Messages postés
1419
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
26 février 2024
11
30 août 2012 à 16:31
30 août 2012 à 16:31
effctivement, il me manque certainement des bases ........ Mais c'est un truc que je fais uniquement pour moi, et j'aimerais bien y arriver !!!
Là, j'arrive à récupérer tous les prénoms correctement, maixs je n'ais plus d'espace entre les prénoms ......
Là, j'arrive à récupérer tous les prénoms correctement, maixs je n'ais plus d'espace entre les prénoms ......
t671
Messages postés
1419
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
26 février 2024
11
30 août 2012 à 16:49
30 août 2012 à 16:49
Génial .......... !!!!!
Merci beaucoup Quoquo !!!!!
Par contre, la ligne $prenoms = substr($prenoms, 1); est inutile (avec ou sans, le résultat est le même).
Je t'avouerais que je ne comprends pas tout dans ce code, mais je vais m'y pencher ;o)
A ++
Merci beaucoup Quoquo !!!!!
Par contre, la ligne $prenoms = substr($prenoms, 1); est inutile (avec ou sans, le résultat est le même).
Je t'avouerais que je ne comprends pas tout dans ce code, mais je vais m'y pencher ;o)
A ++
t671
Messages postés
1419
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
26 février 2024
11
30 août 2012 à 16:55
30 août 2012 à 16:55
;o)
t671
Messages postés
1419
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
26 février 2024
11
2 sept. 2012 à 19:29
2 sept. 2012 à 19:29
Quoquo, même avec $prenoms = substr($prenoms, 1);, j'ai toujors un espace en début de chaîne .......
t671
Messages postés
1419
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
26 février 2024
11
2 sept. 2012 à 19:32
2 sept. 2012 à 19:32
En fait, c'est que j'avais 2 espaces .......