Détecter et convertir un nombre

Petit nouveau ! | 5 Messages

09 juin 2016, 17:51

Bonjour,

dans un texte en français, je chercher à trouver puis à convertir les nombres qui s'y trouvent, et tout ceci avec notre langage préféré PHP :D

Exemple:
1. Caroline a donné 15 bonbons à Paul
2. Charlotte a gagné cinq mille cinq cent Euro à la loterie

Comment feriez-vous pour détecter et convertir les nombres dans l'exemple 1 et 2 ?

A ce jour, j'ai crée un script PHP avec les fonctions preg_match_all() et intval(), la détection et la conversion de String vers int semble fonctionner pour les textes de test.

Est-ce que vous avez une idée pour faire la même chose pour l'exemple 2 ?

En vous remerciant d'avance pour vos idées,

Chris
p'tits tuto et class PHP à découvrir sur Fobec

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

09 juin 2016, 23:55

Bonjour,

Peut être que tu peux t'inspirer de ça :
http://stackoverflow.com/a/1077914
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 5 Messages

10 juin 2016, 09:12

bonne idée,
En faisant des recherches sur les nombres en français, je suis tombé sur vos-contributions/conversion-nombres-le ... 60825.html

Faisons un test
$out = array();
for ($i = 0; $i < 1000000; $i++) {
    $nuts = new nuts($i);
    $s = $nuts->convert("fr-FR");
    $n = explode(' ', $s);
    foreach ($n as $z) {
        if (in_array($z, $out) == false) {
            $out[] = $z;
        }
    }
}
Il y a à peine 113 éléments différents :D

Merci pour la piste, je vais partir avec un regex et les 113 éléments
p'tits tuto et class PHP à découvrir sur Fobec