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 :

Une ecriture plus simple ?


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 118
    Par défaut Une ecriture plus simple ?
    J'ai une chaine de 15 chiffres (N° sécu) qui je voudrait mêttre sous cette forme:
    1 23 45 56 234 1345 _ 45

    Voilà ce que je trouvé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
       $nir = 1234556234134545
       if (preg_match_all('#[0-9]#',$nir,$matches))
       {
           echo $matches[0][0].' '
           .$matches[0][1].$matches[0][2].' '
           .$matches[0][3].$matches[0][4].' '
           .$matches[0][5].$matches[0][6].' '
           .$matches[0][7].$matches[0][8].$matches[0][9].' '
           .$matches[0][10].$matches[0][11].$matches[0][12].' _ '
           .$matches[0][13].$matches[0][14];
       };
     
        // Retourne: 1 23 45 56 234 1345 _ 45
     
    ?>

    Une écriture plus simple est-elle possible ?

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    humm ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo vsprintf('%s %s%s %s%s %s%s %s%s%s %s%s%s%s _ %s%s', str_split('1234556234134545'));

  3. #3
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    pas mieux que stealth35

    Par contre pour vérifier ta variable, je te déconseille preg_match_all pour un test aussi simple :

    Tu as :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php 
    $nir = 1234556234134545;
    if (ctype_digit("$nir")) { 
       echo vsprintf('%s %s%s %s%s %s%s %s%s%s %s%s%s%s _ %s%s', str_split($nir));
    }
    ?>

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par rawsrc Voir le message
    pas mieux que stealth35

    Par contre pour vérifier ta variable, je te déconseille preg_match_all pour un test aussi simple :

    Tu as :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php 
    $nir = 1234556234134545;
    if (ctype_digit("$nir")) { 
       echo sprintf('%s %s%s %s%s %s%s %s%s%s %s%s%s%s _ %s%s', str_split($nir));
    }
    ?>
    ca ne marchera pas puisque il va être convertie en float, donc la chaine sera 1.2345562341345E+15 et le ctype ne marchera pas non plus puisque c'est un float

    ps : c'est vsprintf

  5. #5
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Bah vi,
    J'ai retapé, ça m'apprendera la prochaine fois, je ferai du copier-coller.
    J'utilise tellement plus sprintf que vsprintf que mes doigts tapent tout seuls sur le clavier :ane:

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 118
    Par défaut
    Ouaaaaa ! Quelle clarté ! Le code est plus propre et plus compréhensible.

    La variable est récupérée de la table mysl (je n'ai donc pas... en théorie) besoin de la retester... Le "preg_match" étant utilisé pour arriver à mes fins !

    Et ce procédé marche aussi avec les lettres ?
    si maintenant j'avais :

    $var = 'lavoituredepaul'
    et que je veuille :
    'LaVoitureDePaul' ?

    (Bon d'accord ca rime à rien mais c'est histoire d'exercice...)

    Super grand Merci.

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

Discussions similaires

  1. Transformer de façon propre une URL (plus simple qu’un substring)
    Par geforce dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 10/03/2012, 13h00
  2. Réponses: 8
    Dernier message: 02/06/2011, 18h13
  3. [RegExp] y a-t-il plus simple pour extraire sous-chaine d'une chaine ?
    Par laurentSc dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 17/03/2011, 18h16
  4. Formulation plus simple d'une requête
    Par phicarre dans le forum Langage SQL
    Réponses: 8
    Dernier message: 20/04/2009, 19h07
  5. [JDOM] Moyen le plus simple de valider une trame XML que l'on vient de créer ?
    Par scougirou dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 15/06/2007, 15h16

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