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];
}
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
-
Salut,
Je te propose une solution un peu tordu mais c'est tou ce qui me vient à l'esprit pour le moment. :o)
La fonction split() correspond peut etre plus à ce que tu veux faire...
http://www.php.net/manual/fr/function.split.php
Kalamit,
Je ponce donc j'essuie -
ModérateurEssaye 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. -
Et voila...
Qd Johan s'en mêle, j'ai toujours l'air d'un couillon... :o)
Kalamit,
Je ponce donc j'essuie -
Merci à vous deux pour votre aide. C'est très sympa :D