只是试图找出执行数学运算的正确和更安全的方式作为字符串传递.在我的场景中,它是从图像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)
这两个示例都需要清理字符串以避免恶意代码执行.有没有其他或更短的方式这样做?