Php regex tres simple, garder que les chiffre

Résolu
107ans Messages postés 9 Statut Membre -  
 Duncan -
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)
Configuration: Windows XP
Firefox 3.0.1

3 réponses

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

    marche aussi bien
    25
    1. ccampi
       
      Parfait ;)
      0
    2. Guitou
       
      Top !
      0
    3. yop
       
      génial !
      0
    4. grosratdegueu
       
      la fonction ereg est depréciée
      0
    5. Duncan
       
      la fonction ereg est depréciée et remplacer par la fonction preg_replace

      $chaine=preg_replace("/[^0-9]/","",$chaine); 
      1
  2. jonastuces Messages postés 45 Statut Membre 24
     
    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.
    1
  3. Tiradus Messages postés 246 Statut Membre 47
     
    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