而不是使用 eval() 将字符串转换为 php 数学方程式?
Instead of using eval() to convert a string to a php math equation?
所以在 eval() 文档中有人引用:
If eval() is the answer, you're almost certainly asking the wrong
question. -- Rasmus Lerdorf, BDFL of PHP
所以我不知道该怎么问这个问题。但我想要的是可以:
从表单字段中输入一个方程,其中包含 php 个变量 ($var['name']
) 或某种替换词,这些词稍后会变成方程的变量。
将上面的等式保存到数据库中。
以后可以从php代码到运行那个等式。
注意:只有少数站点管理员able/have有权创建这些方程式并将其保存到数据库中。
但是无论如何,我不应该使用eval()
。我应该用什么代替?或者应该如何提出问题?
如果可能,最好避免出于任何原因对用户输入使用 eval
。例如,如果存在允许访问管理员帐户的错误或漏洞(小问题,如 XSS 等),他们现在可以在您的服务器上执行代码。
如上所述,更好的选择是使用数学解析器。
我对 hoa/math 有很好的体验,它支持变量、自定义函数、常量等。
所以在 eval() 文档中有人引用:
If eval() is the answer, you're almost certainly asking the wrong question. -- Rasmus Lerdorf, BDFL of PHP
所以我不知道该怎么问这个问题。但我想要的是可以:
从表单字段中输入一个方程,其中包含 php 个变量 (
$var['name']
) 或某种替换词,这些词稍后会变成方程的变量。将上面的等式保存到数据库中。
以后可以从php代码到运行那个等式。
注意:只有少数站点管理员able/have有权创建这些方程式并将其保存到数据库中。
但是无论如何,我不应该使用eval()
。我应该用什么代替?或者应该如何提出问题?
如果可能,最好避免出于任何原因对用户输入使用 eval
。例如,如果存在允许访问管理员帐户的错误或漏洞(小问题,如 XSS 等),他们现在可以在您的服务器上执行代码。
如上所述,更好的选择是使用数学解析器。
我对 hoa/math 有很好的体验,它支持变量、自定义函数、常量等。