相关疑难解决方法(0)

如何评估在PHP中作为字符串传递的公式?

只是试图找出执行数学运算的正确和更安全的方式作为字符串传递.在我的场景中,它是从图像EXIF数据中获取的值.

经过一些研究,我发现了两种方法.

首先,使用eval:

function calculator1($str){
    eval("\$str = $str;");
    return $str;
}
Run Code Online (Sandbox Code Playgroud)

第二,使用create_function:

function calculator2($str){
    $fn = create_function("", "return ({$str});" );
    return $fn();
};
Run Code Online (Sandbox Code Playgroud)

这两个示例都需要清理字符串以避免恶意代码执行.有没有其他或更短的方式这样做?

php string math parsing eval

37
推荐指数
1
解决办法
3万
查看次数

如何在数学上评估像"2-1"这样的字符串来产生"1"?

我只是想知道PHP是否有一个函数可以采用字符串2-1并产生它的算术结果?

或者我是否必须手动执行此操作explode()以获取算术运算符的左右值?

php math numbers eval operators

27
推荐指数
4
解决办法
3万
查看次数

在PHP 7中不鼓励使用Eval

我在字符串敌人的例子中得到了公式

$a = '1*2*(2+3)';
echo eval($a) // Output should be 10
Run Code Online (Sandbox Code Playgroud)

现在我正在尝试评估此字符串并使用eval,但在PHP 7中给我这个错误不鼓励使用eval(),所以我如何评估此字符串.

eval php-7

1
推荐指数
1
解决办法
2491
查看次数

标签 统计

eval ×3

math ×2

php ×2

numbers ×1

operators ×1

parsing ×1

php-7 ×1

string ×1