PHP expression régulières

Bonjour,
J'utilise PHP 4.0. Je souhaite écrire une fonction qui scanne une chaîne de caractère et qui extrait chaque chiffre. Les chiffres extraits sont mis les uns derrière les autres afin de créer une nouvelle chaîne ne contenant que les chiffres extraits. On obtient donc un nombre.

J'ai écris ceci mais cela s'arrête à la première occurence seulement. Je souhaiterais que cela scanne toute la chaîne de caractères... Merci pour votre aide.

function recup_digits($chaine)
{
ereg("([0-9]).",$chaine,$chaine2);
return $chaine2[0];
}

4 réponses

  1. Modérateur
    Essaye qqch du genre:
    [johand@zoot] ~/src/php $cat chiffres.php
    <?php
    function getdigits($string)
    {
    $res = preg_match_all("/([0-9])/", $string, $results);
    // http://php.easynet.be/manual/en/function.join.php
    // http://php.easynet.be/manual/en/function.preg-match-all.php
    $nombre = join("", $results[1]);
    return $nombre;
    }

    $s1="a1b2c3";
    print(getdigits($s1). "\n");
    $s1="a12b34c56d";
    print(getdigits($s1) . "\n");
    ?>

    [johand@zoot] ~/src/php $php4 -q chiffres.php
    123
    123456

    Johan
    The software said "Requires Windows98, Win2000, or better,
    So I installed Unix.
    1. Et voila...
      Qd Johan s'en mêle, j'ai toujours l'air d'un couillon... :o)

      Kalamit,
      Je ponce donc j'essuie
      1. Merci à vous deux pour votre aide. C'est très sympa :D