Php modifier chaine de caractères
Résolu/Fermé
Isa__
Messages postés
55
Date d'inscription
samedi 10 septembre 2005
Statut
Membre
Dernière intervention
14 octobre 2011
-
3 juil. 2009 à 07:59
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 - 6 juil. 2009 à 11:41
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 - 6 juil. 2009 à 11:41
A voir également:
- Php modifier chaine de caractères
- Caractères ascii - Guide
- Modifier liste déroulante excel - Guide
- Comment modifier un pdf - Guide
- Clavier mac caractères spéciaux - Guide
- Caractères spéciaux symboles clavier - Guide
5 réponses
Bonjour
Je ne vois pas très bien ce que les ereg viennet faire là-dedans. les ereg, c'est plutôt pour vérifier si une chaîne respecte un certain format.
Tu as juste à découper ton numéro en petits morceaux avec des ciseaux "substr" et à recoller les morceaux en mettant des espaces :
$nouveaunumero = substr($numero,0,2).' '.substr($numero,2,2).' '.substr($numero,4,2).' '.substr($numero,6,2).' '.substr($numero,8,2);
Je ne vois pas très bien ce que les ereg viennet faire là-dedans. les ereg, c'est plutôt pour vérifier si une chaîne respecte un certain format.
Tu as juste à découper ton numéro en petits morceaux avec des ciseaux "substr" et à recoller les morceaux en mettant des espaces :
$nouveaunumero = substr($numero,0,2).' '.substr($numero,2,2).' '.substr($numero,4,2).' '.substr($numero,6,2).' '.substr($numero,8,2);
kij_82
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
3 juil. 2009 à 11:31
3 juil. 2009 à 11:31
Bonjour,
Ou une fonction plus généraliste, qui prends en paramètre une chaine de caractère, et qui insère un espace tous les 2 caractères :
A toi ensuite de contrôler la taille de ton numéro de téléphone pour ne pas te retrouver avec un seul premier chiffre par exemple (ex: 675654889 -> 6 75 65 48 89)
Mais sinon il me semble aussi que tu puisse faire ça via des expressions régulières. Celle-ci te permette de récupérer un groupe de caractère dans une chaine, afin de les reformater dans une chaine en sortie. Donc rien ne t'empêche de "grouper" deux caractères par deux caractères et de les concaténer avec un espace en sortie. N'étant pas spécialiste des rexexp par contre, je n'ai pas de code à te proposer, mais google est ton ami ;)
Ou une fonction plus généraliste, qui prends en paramètre une chaine de caractère, et qui insère un espace tous les 2 caractères :
function formatPhoneNumber ( $number ){ $ancien = $i = strlen($number ); $newNumber = ""; do{ $ancien = $i; // --- Save start position $i -= 2; // --- New position if ( $i >= 0 ) $newNumber = " ".substr($number ,$i,3).$newNumber ; else if ( $ancien >= 0 ) $newNumber = substr($number ,0,$ancien).$newNumber ; }while( $i >= 0 ); return $newNumber ; }
A toi ensuite de contrôler la taille de ton numéro de téléphone pour ne pas te retrouver avec un seul premier chiffre par exemple (ex: 675654889 -> 6 75 65 48 89)
Mais sinon il me semble aussi que tu puisse faire ça via des expressions régulières. Celle-ci te permette de récupérer un groupe de caractère dans une chaine, afin de les reformater dans une chaine en sortie. Donc rien ne t'empêche de "grouper" deux caractères par deux caractères et de les concaténer avec un espace en sortie. N'étant pas spécialiste des rexexp par contre, je n'ai pas de code à te proposer, mais google est ton ami ;)
Isa__
Messages postés
55
Date d'inscription
samedi 10 septembre 2005
Statut
Membre
Dernière intervention
14 octobre 2011
2
3 juil. 2009 à 17:23
3 juil. 2009 à 17:23
Merci beaucoup à tous les deux...
Avec ça je devrais pouvoir me débrouiller.
Je poste résultat ici ensuite si ça peut aider quelqu'un.
isa
Avec ça je devrais pouvoir me débrouiller.
Je poste résultat ici ensuite si ça peut aider quelqu'un.
isa
Isa__
Messages postés
55
Date d'inscription
samedi 10 septembre 2005
Statut
Membre
Dernière intervention
14 octobre 2011
2
3 juil. 2009 à 18:27
3 juil. 2009 à 18:27
J'ai eu la flemme de chercher avec ereg.
J'ai testé la solution de le père.
Après modif puisque je n'avais pas de 0 en début de numéro, j'a fait ça :
$nouveau_no = "0".substr($ancien_no,0,1).' '.substr($ancien_no,1,2).' '.substr($ancien_no,3,2).' '.substr($ancien_no,5,2).' '.substr($ancien_no,7,2);
Et ca fonctionne parfaitement, donc en bonne feignasse, je ne cherche pas plus loin !
Merci à vous tous
Isa
J'ai testé la solution de le père.
Après modif puisque je n'avais pas de 0 en début de numéro, j'a fait ça :
$nouveau_no = "0".substr($ancien_no,0,1).' '.substr($ancien_no,1,2).' '.substr($ancien_no,3,2).' '.substr($ancien_no,5,2).' '.substr($ancien_no,7,2);
Et ca fonctionne parfaitement, donc en bonne feignasse, je ne cherche pas plus loin !
Merci à vous tous
Isa
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
kij_82
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
6 juil. 2009 à 11:41
6 juil. 2009 à 11:41
Il faudra faire attention cependant. Avec un tel code, certes ça fonctionne, mais si tes valeurs, ou plutôt la forme de tes valeurs change plus tard (admettons que tu ne gère plus que des nombres à 3 chiffres), ça risque d'entrainer des erreurs d'indexation.