Tri/Formatage d'une chaine PHP
Résolu
Mich
-
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
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
-
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 -
-
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...? -
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 -
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) ? -
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. -