Php modifier chaine de caractères
Résolu
Isa__
Messages postés
57
Date d'inscription
Statut
Membre
Dernière intervention
-
kij_82 Messages postés 4089 Date d'inscription Statut Contributeur Dernière intervention -
kij_82 Messages postés 4089 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous,
J'ai dans ma base des numéros de téléphone sous la forme 607435674
Je voudrais les faire afficher plus proprement, sous forme 06 07 43 56 74.
J'ai essayé des tas de trucs compliqués et pas efficaces.
Je pense que la solution serait dans un ereg, mais ne n'arrive pas à m'en sortir.
Je suis sûre que la solution est pourtant simple et que l'un de vous pourra m'aider.
Merci d'avance
Isa
J'ai dans ma base des numéros de téléphone sous la forme 607435674
Je voudrais les faire afficher plus proprement, sous forme 06 07 43 56 74.
J'ai essayé des tas de trucs compliqués et pas efficaces.
Je pense que la solution serait dans un ereg, mais ne n'arrive pas à m'en sortir.
Je suis sûre que la solution est pourtant simple et que l'un de vous pourra m'aider.
Merci d'avance
Isa
A voir également:
- Php modifier chaine de caractères
- Modifier dns - Guide
- Modifier liste déroulante excel - Guide
- Caractères ascii - Guide
- Caractères spéciaux - Guide
- Modifier story facebook - 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);
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 ;)
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
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