Php regex tres simple, garder que les chiffre

Résolu/Fermé
107ans Messages postés 9 Date d'inscription dimanche 1 octobre 2006 Statut Membre Dernière intervention 23 juillet 2008 - 23 juil. 2008 à 21:34
 Duncan - 14 mars 2014 à 16:00
Bonjour,
je souhaite ne garder que les chiffres d'une variable et enlever le reste
car je commence tout juste le web

par exemple j'ai ceci

$variable = lalala12345;

et je veux juste les chiffres

$variable = 12345;


comment faire ?

nb : dans $variable il n'y a rien apres (ex : lalala12345lalala) mais juste avant (ex : lalala12345)
A voir également:

3 réponses

$chaine=ereg_replace("[^0-9]","",$chaine);

marche aussi bien
25
Parfait ;)
0
Top !
0
génial !
0
grosratdegueu
9 mars 2012 à 16:26
la fonction ereg est depréciée
0
la fonction ereg est depréciée et remplacer par la fonction preg_replace

$chaine=preg_replace("/[^0-9]/","",$chaine); 
1
jonastuces Messages postés 45 Date d'inscription vendredi 18 mai 2007 Statut Membre Dernière intervention 30 décembre 2010 24
23 juil. 2008 à 23:28
Bonsoir,

Voici un code qui fonctionne, il existe peut être plus simple.

<?php

$message = "abc5897";
$carac = 0;
$taille = strlen($message);

if (preg_match("/[0-9]/i", $message)) { // On test si la chaine contient des chiffres
while ($carac <= $taille-1) { // tant qu'il y a des caractères
$Chaine = $message{$carac}; // on prend caractère par caractère
if((ord($Chaine) <= ord("9")) && (ord($Chaine) >= ord("0")) ){ // si le caractere est un chiffre
$chiffre .= $Chaine;
}
//$debut = $debut + 1;
//$fin = $fin + 1;
$carac++;
}
echo $chiffre;

}
?>

Bonne soirée.
0
Tiradus Messages postés 235 Date d'inscription mercredi 31 octobre 2007 Statut Membre Dernière intervention 26 décembre 2011 46
23 juil. 2008 à 21:45
Bonsoir,

je ne suis pas un pro de programmation ou de php ;)

Mais je peux juste te donner une idée de principe (Cependant il doit certainement y avoir plus optimal et plus simple) :

=============
La synthaxe du code est complètement fausse c'est juste pour l'idée
=============

// Ta variable de base
$variable = lalala12345;

// Une variable temporaire en dehors de la boucle (Je sais pas si il y a besoin)
$var;

// Une boucle qui te permettra de tester chaque caractère de
// ta chaine pour savoir si c'est numérique ou non.
for (i=0; i<(strlen($variable)-1);i++) {

// Permet de sélectionner quel caractère tu va tester avec le i de la boucle
$j=$i++;

// Chaque tour de boucle tu va tester le caractère suivant
$str=substr($variable, $i, $j );

// Si le caractère est de type entier
if (is_int($str)){

// Tu l'ajoutes aux autres
$var=$var+$str;
}
// Ensuite tu testes le caractère suivant
}

Navré, de ne pouvoir te donner le code exact mais c'est comme sa que je vois les choses.

Tiradus
-4