IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Insérer espace dans une chaîne de caractères [Fait] [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 277
    Points : 76
    Points
    76
    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.

  2. #2
    Membre averti Avatar de supernova
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    447
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 447
    Points : 415
    Points
    415
    Par défaut
    Tu peux appliquer un format à ta chaine ; vois du côté de la fonction sprintf

  3. #3
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 277
    Points : 76
    Points
    76
    Par défaut
    Je ne comprends pas trop comment sprintf va m'aidez.

    Peux tu me l'expliquer?

    Merci d'avance.

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Turquie

    Informations forums :
    Inscription : Avril 2005
    Messages : 614
    Points : 502
    Points
    502
    Par défaut
    moi je ferai quelque chose dans le genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  5. #5
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Avec les expressions réguilères (c'est pas joli mais ça fonctionne )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $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);

  6. #6
    Membre actif Avatar de MANU_2
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 417
    Points : 275
    Points
    275
    Par défaut
    Citation Envoyé par maximenet
    moi je ferai quelque chose dans le genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    }

  7. #7
    Membre expérimenté Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Points : 1 537
    Points
    1 537
    Par défaut
    Citation Envoyé par Anduriel
    Avec les expressions réguilères (c'est pas joli mais ça fonctionne )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $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 : Sélectionner tout - Visualiser dans une fenêtre à part
    $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 : Sélectionner tout - Visualiser dans une fenêtre à part
    $telephone_formate = str_replace("\r\n", " ", chunk_split($telephone, 2));

  8. #8
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
     
    $string = '0123456789';
    echo preg_replace('#(\d{2})#', '$1 ', $string);
     
    ?>

  9. #9
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    echo wordwrap("0123456789",2," ",1);

  10. #10
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 277
    Points : 76
    Points
    76
    Par défaut
    Merci à tous,

    ça marche impec.

    A++ et bonne journée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 06/11/2007, 12h36
  2. [Debutant] notation des espaces dans une adresse
    Par DiVa dans le forum Débuter
    Réponses: 3
    Dernier message: 16/03/2006, 17h58
  3. Suppression d'espaces dans une chaîne
    Par dafalri dans le forum Langage
    Réponses: 11
    Dernier message: 20/02/2006, 13h13
  4. [SQL / ORACLE] Supprimer espace dans une phrase
    Par shaun_the_sheep dans le forum Oracle
    Réponses: 10
    Dernier message: 31/01/2006, 16h29
  5. Réponses: 2
    Dernier message: 24/06/2004, 09h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo