而不是使用eval()将字符串转换为php数学公式?

而不是使用eval()将字符串转换为php数学公式?,php,math,eval,equation,Php,Math,Eval,Equation,所以在有人引用的文档中: 如果eval()是答案,那么您几乎肯定是问错了 问题。-拉斯马斯·勒多夫,PHP的BDFL 所以我不知道该怎么问这个问题。但我想要的是能够: 在表单字段中,输入一个包含php变量($var['name'])或某种替换词的等式,这些替换词稍后将转换为等式的变量 将上述方程式保存到数据库中 以后可以从php代码运行该等式 注意:该站点只有少数管理员能够/有权创建这些方程式并将其保存到数据库中 但无论如何,我不应该使用eval()。我应该用什么来代替?或者应该如何提问?如果可

所以在有人引用的文档中:

如果eval()是答案,那么您几乎肯定是问错了 问题。-拉斯马斯·勒多夫,PHP的BDFL

所以我不知道该怎么问这个问题。但我想要的是能够:

  • 在表单字段中,输入一个包含php变量(
    $var['name']
    )或某种替换词的等式,这些替换词稍后将转换为等式的变量

  • 将上述方程式保存到数据库中

  • 以后可以从php代码运行该等式

  • 注意:该站点只有少数管理员能够/有权创建这些方程式并将其保存到数据库中


    但无论如何,我不应该使用
    eval()
    。我应该用什么来代替?或者应该如何提问?

    如果可能,最好避免在用户输入时出于任何原因使用
    eval
    。例如,如果存在允许访问管理员帐户的bug或漏洞(小问题,如XSS等),他们现在可以在您的服务器上执行代码

    如上所述,更好的选择是使用数学解析器


    我有很好的经验,它支持变量、自定义函数、常量等

    一个带解释器的解析器。比如。-或者只要进入谷歌的“php数学解析器”,你就会发现一些软件包。使用这些包,您可以提前设置变量,比如setVariables(['name'=>$something]);我没有使用供应商。有没有可能只下载包含所需内容的软件包?