Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/07/2006, 16h27   #1
Membre du Club
 
Inscription : octobre 2004
Messages : 277
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 277
Points : 42
Points : 42
Envoyer un message via MSN à bb62
Par défaut Insérer espace dans une chaîne de caractères

Bonjour à tous,

J'ai une chaine de caractere suivante : 0321526212 (c'est un numero de tel)
et moi j'aimerai afficher : 03 21 52 62 12.

Comment faire??

Merci d'avance.
bb62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2006, 16h35   #2
Membre éclairé
 
Avatar de supernova
 
Développeur informatique
Inscription : juillet 2005
Messages : 443
Détails du profil
Informations personnelles :
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juillet 2005
Messages : 443
Points : 359
Points : 359
Tu peux appliquer un format à ta chaine ; vois du côté de la fonction sprintf
supernova est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2006, 16h55   #3
Membre du Club
 
Inscription : octobre 2004
Messages : 277
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 277
Points : 42
Points : 42
Envoyer un message via MSN à bb62
Je ne comprends pas trop comment sprintf va m'aidez.

Peux tu me l'expliquer?

Merci d'avance.
bb62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2006, 17h04   #4
Membre éprouvé
 
Homme
Inscription : avril 2005
Messages : 611
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : Turquie

Informations forums :
Inscription : avril 2005
Messages : 611
Points : 459
Points : 459
moi je ferai quelque chose dans le genre:
Code :
1
2
3
4
5
6
for($i=1;($i-1)<strlen($num_tel);$i++){
 if($i>0 && ($i%2==0))
  $new_tel .= ' '.substr($num_tel,$i-1,1);
 else
  $new_tel .= substr($num_tel,$i-1,1);
}
franchement j'ai pas tester mais quelque chose dans le genre devrai fonctionner.

y'a surement bcq plus simple avec les expressions régulière
maximenet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2006, 17h05   #5
Membre Expert
 
Avatar de Anduriel
 
Homme
Étudiant
Inscription : février 2004
Messages : 2 168
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2004
Messages : 2 168
Points : 1 277
Points : 1 277
Avec les expressions réguilères (c'est pas joli mais ça fonctionne )

Code :
$telephone_formate = preg_replace("#^([0-9]{1}[0-9]{1})([0-9]{1}[0-9]{1})([0-9]{1}[0-9]{1})([0-9]{1}[0-9]{1})([0-9]{1}[0-9]{1})$#", "$1 $2 $3 $4 $5", $telephone);
Anduriel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2006, 17h42   #6
Membre confirmé
 
Avatar de MANU_2
 
Inscription : mai 2002
Messages : 417
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 417
Points : 224
Points : 224
Citation:
Envoyé par maximenet
moi je ferai quelque chose dans le genre:
Code :
1
2
3
4
5
6
for($i=1;($i-1)<strlen($num_tel);$i++){
 if($i>0 && ($i%2==0))
  $new_tel .= ' '.substr($num_tel,$i-1,1);
 else
  $new_tel .= substr($num_tel,$i-1,1);
}
Vu que c'est ts les 2 chiffreq que tu veux mettre un espace, faire un boucle "pour" avec un pas de 2

Code :
1
2
3
for($i=1;($i-1)<strlen($num_tel);$i+=2){
  $new_tel .= ' '.substr($num_tel,$i-1,1); // qq chose comme ça
}
MANU_2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2006, 19h56   #7
Membre Expert
 
Avatar de Lorenzo77
 
Inscription : mai 2006
Messages : 1 294
Détails du profil
Informations personnelles :
Âge : 40
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mai 2006
Messages : 1 294
Points : 1 220
Points : 1 220
Citation:
Envoyé par Anduriel
Avec les expressions réguilères (c'est pas joli mais ça fonctionne )

Code :
$telephone_formate = preg_replace("#^([0-9]{1}[0-9]{1})([0-9]{1}[0-9]{1})([0-9]{1}[0-9]{1})([0-9]{1}[0-9]{1})([0-9]{1}[0-9]{1})$#", "$1 $2 $3 $4 $5", $telephone);
ceci est + propre :
Code :
$telephone_formate = preg_replace("#(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})#", "$1 $2 $3 $4 $5", $telephone);
sinon ceci est aussi valable :
Code :
$telephone_formate = str_replace("\r\n", " ", chunk_split($telephone, 2));
Lorenzo77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2006, 20h09   #8
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Salut

Histoire que l'on ne dise pas que les regex sont peu pratiques :

Code :
1
2
3
4
5
6
<?php
 
$string = '0123456789';
echo preg_replace('#(\d{2})#', '$1 ', $string);
 
?>
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2006, 02h57   #9
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Juste histoire de le dire et je suis désolé de vous contredire mais pourquoi se compliquer la vie quand on a un super exemple comme ceci ???

Code :
echo wordwrap("0123456789",2," ",1);
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2006, 09h01   #10
Membre du Club
 
Inscription : octobre 2004
Messages : 277
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 277
Points : 42
Points : 42
Envoyer un message via MSN à bb62
Merci à tous,

ça marche impec.

A++ et bonne journée.
bb62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h04.


 
 
 
 
Partenaires

Hébergement Web