Calculer le contenu d'une chaine de texte

Résolu
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 - 22 mars 2007 à 12:49
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 - 22 mars 2007 à 17:16
Bonjour à tous,

j'aimerais me créé un BBCode pour mon forum qui serait capapble de faire des calculs simples (+,-,*,/). J'aimerais savoir s'il existe une commande en php5 qui prend une chanec de texte et fait des calcul mathématique avec.

Exemple, je lui donne a chaine '(1+5)/2.5' et la fonction me retourne le résultat. Ça ne me tente pas trop de décoposer la chaine dans un arbre pour faire les calculs un par un manuellement

-------------------------------------------------
Dragon alias aussi Waxime mais bon, pas le gout de refaire un nouveau profil lol
-------------------------------------------------

2 réponses

cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
22 mars 2007 à 17:16
merci


 




<?php

function
strtonum
(
$str


)
{
  
$str
=
preg_replace
(
'`([^+\-*=/\(\)\d\^<>&|\.]*)`'
,
''
,
$str


);
   if(empty(
$str
))
$str
=
'0'


;
   else eval(
"\$str = $str;"


);
   return
$str


;
}




//this

echo
strtonum
(
"(1<<10)*10"
),
'
'


;
echo
strtonum
(
"10*9.78"
),
'
'


;




//will output



10240
97.8

?>







-------------------------------------------------
Dragon alias aussi Waxime mais bon, pas le gout de refaire un nouveau profil lol
-------------------------------------------------
3
lesdis Messages postés 403 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 7 août 2020
22 mars 2007 à 15:59
Bonjour,

essai de voir avec la fonction eval. Elle permet d'interpreter une chaine de texte comme script php.
0
Rejoignez-nous