Tri/Formatage d'une chaine PHP

Résolu
Mich -  
 Mich -
Bonjour,
J'ai la chaine de caractères suivante dans ma base de données : 02.01.01.20
J'aimerais pouvoir l'afficher sous cette forme : 2.1.1.20
En gros supprimer les 0 qui sont avant un chiffre et laisser ceux qui sont après. Comment faire ?
merci
Configuration: Windows XP
Firefox 3.0.12

7 réponses

  1. Airmanbzh Messages postés 122 Statut Membre 9
     
    Regarde du côté de la fonction ereg_replace() : https://www.commentcamarche.net/contents/803-php-expressions-regulieres

    Avec ça tu pourras filtrer ton texte.

    Cdt
    0
  2. Mich
     
    Je vais voir et vous tiens au courant...
    0
  3. Mich
     
    Wow c'est super compliqué, pour permettre de savoir si ça a cette allure : 02.01.01.04 je pensais à un truc comme ça :
    "^0.{2}[0].{2}[0].{2}[0].{1}" mais déjà là, ce que j'ai fais ne dois pas être juste et en plus si ma valeur vaut ça : 02.01.01.20 ou 02.31.23.01 ça marche plus?!
    Je vois vraiment pas pourquoi et comment utiliser les regex là, si quelqu'un peut m'aider...?
    0
  4. Airmanbzh Messages postés 122 Statut Membre 9
     
    la fonction à utiliser n'est pas regexp(...) mais eregi() (petite erreure de copier-coller. désolé)

    et ton expréssion régulière est :
    "[1-9][1-9]*.[1-9][1-9]*.[1-9][1-9]*.[1-9][1-9]*"


    Soit : un chiffre entre 1 et 9 suivi (ou non) par un ou plusieurs chiffre puis un point. On répéte cette expression 4 fois.

    Cdt
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Mich
     
    D'accord donc au niveau de la fonction eregi(chaîne modele,chaîne texte[,tableau occurrences]) :

    Le but est de passer en modèle ça : "[1-9][1-9]*.[1-9][1-9]*.[1-9][1-9]*.[1-9][1-9]*" pour que ça le compare à ma chaine texte, ainsi ça va me sortir true à chaque zéro trouvé qui est avant un chiffre ?
    par exemple : eregi("[1-9][1-9]*.[1-9][1-9]*.[1-9][1-9]*.[1-9][1-9]*",02.01.01.20) ?
    0
  7. Airmanbzh Messages postés 122 Statut Membre 9
     
    La beauté de la chose c'est que cette fonction permet de donner un modele à la chaine passée en paramêtre donc si ta chaine ne correspond pas, la fonction va la modifier pour faire en sorte qu'elle corresponde au modéle.

    Exemple :
    <?php
    $chaine = eregi("[1-9][1-9]*.[1-9][1-9]*.[1-9][1-9]*.[1-9][1-9]*","02.01.01.20");
    echo $chaine;
    ?>
    te ressortira (normalement) : 2.1.1.20
    


    Je dois y aller.

    Bonne soirée et bon courage.
    0
  8. Mich
     
    Ouahou ça marche ! Pfiou j'en reviens pas et en plus j'ai compris, merci merci !
    0