可能重复:
how to evaluate formula passed as string in php?从字符串变量PHP获取真正的价值
我有这样一个字符串 “10 * 0.1 + 800” 我想获得的实际答案这个字符串是数字而不是字符串值。
我试过floatval
php的功能,但没有运气。任何想法?
可能重复:
how to evaluate formula passed as string in php?从字符串变量PHP获取真正的价值
我有这样一个字符串 “10 * 0.1 + 800” 我想获得的实际答案这个字符串是数字而不是字符串值。
我试过floatval
php的功能,但没有运气。任何想法?
你将不得不“评估”使用PHP的eval函数的字符串:
eval('return ' . $string . ';');
但我真的只能这样做,如果你能信任的字符串。因为你在这里做的确是在执行PHP代码。如果你不能相信字符串,这是一个可能的安全漏洞。
其他可能的选择是使用解析器。我相信,这个任务已经有可用的库。
你可以尝试:
$string = "10*0.1+800";
$result = eval("return "+$string);
但使用eval的安全隐患要小心!
thneks,............... –
你可以简单地使用php的eval函数来评估字符串。
$str = "10*0.1+800"
eval('return ' . $str. ';');
不要使用'eval',尽管很多人所提出的建议吧! – fresskoma
@ x3ro然后什么是最好的方法来做到这一点,感谢您的意见 –
看看链接的“重复问题”。被接受的答案包含一个完整的数学表达式解析器,它不会引入eval的安全风险。 – fresskoma