eval() 的替代方法,用于使用 php 进行数学方程式 [重复]

Posted

技术标签:

【中文标题】eval() 的替代方法,用于使用 php 进行数学方程式 [重复]【英文标题】:Alternatives to eval() for doing math equations using php [duplicate] 【发布时间】:2016-07-25 18:15:45 【问题描述】:

除了使用 eval() 来做数学方程式之外,有没有其他方法可以安全地使用 eval 和用户输入?

$string = "1+2-3*4/5";
$answer = eval($answer = $string);

【问题讨论】:

在计算之前验证输入。在这里查看一些答案:***.com/q/18880772/3933332 或使用一些parser 我已经在你的最后一个问题下写过了 【参考方案1】:

也许您可能只想从给定字符串中选择数学和数字,然后执行 eval。

preg_match_all("/[0-9()+\-*\/.]/", $string, $output_array);
$operation = implode("", $output_array[0]);
eval($operation);

【讨论】:

以上是关于eval() 的替代方法,用于使用 php 进行数学方程式 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

php7.1.3安装Suhosin7后,eval依然无法禁用,求解惑

eval 是邪恶的问题

AS2 计算中 eval() 的最佳替代品

用于 php 的 OCR 包装器

是否有替代实时数据的方法? [关闭]

PHP中eval函数的危害与正确禁用方法