Tri/Formatage d'une chaine PHP

Résolu/Fermé
Mich - 29 juil. 2009 à 16:22
 Mich - 29 juil. 2009 à 17:36
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
A voir également:

7 réponses

Airmanbzh Messages postés 119 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 27 avril 2010 9
29 juil. 2009 à 16:37
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
Je vais voir et vous tiens au courant...
0
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
Airmanbzh Messages postés 119 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 27 avril 2010 9
29 juil. 2009 à 17:16
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
Airmanbzh Messages postés 119 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 27 avril 2010 9
29 juil. 2009 à 17:30
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
Ouahou ça marche ! Pfiou j'en reviens pas et en plus j'ai compris, merci merci !
0