将字符串转换为数学方程

3

我希望能将包含方程式的字符串转换成实际的PHP数学方程式,使用PHP5+是否可行?如果可以,如何操作?

以下是一些可能出现的字符串示例:

$string = "37-0";
$string = "315+10";
$string = "25+50";
$string = "88-13";

我希望将这些内容简单地解析成正确的数学答案,如果可能的话。

它会运行,有什么问题吗? - saurav
https://dev59.com/HGnWa4cB1Zd3GeqPxBx2 的被接受答案是一个优秀而且安全的计算器,用于数学方程,没有任何 eval 的问题和危险。 - Mark Baker
2个回答

5

试试这个:

$str = '37 - 0';
eval( '$result = (' . $str. ');' );
echo $result;

查看eval函数

将给定的代码作为PHP代码进行评估。

顺便提一下:

eval()语言结构非常危险,因为它允许执行任意PHP代码。因此,不建议使用它。如果您仔细验证后发现没有其他选项,只能使用此结构,请特别注意在未经适当验证之前不要将任何用户提供的数据传递给它。


这个解决方案写得更好,但我更喜欢@Valentin Mercier的方法(如下):它只需要一个最终的分号就可以工作。例如:$result = eval("return " . $string . ";"); - Jamie G
为确保安全,最好先清除字符串,例如 $str = preg_replace('/[^0-9+-/*]+/', '', $str); - n-dru

1
你正在寻找 PHP函数eval
使用方法如下:
$string = "88-13";
$result = eval("return " . $string);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接