注意: 这里的Eval完全是基于知识的运用,被解析的字符串仅由管理员输入,目的是将指令存储在数据库中,而不限制指令。 如果您有更好的替代方案,我们始终欢迎,但请不要只说“eval不好”。
我在PHP中有一个字符串,例如
$myString = "(35*$var1*64)/$var2";
我想要对这个字符串进行eval()
操作,但在此之前,我希望修改字符串中的所有变量,使其符合以下格式:
$var2 -> $_POST['var2']
$myString
变量之后可能有空格,也可能没有。
当我使用 eval
函数执行 $myString
时,PHP 抛出错误 "Undefined variable $var1"。PHP 会读取字符串并解析其中的变量,所以我猜应该有一种方法可以解析字符串中的所有变量。
输出结果应该是:
$myStringParsed = "(35*$_POST['var1']*64)/$_POST['var2']";
或者等价物。
"
作字符串,因为解析器会将变量添加到字符串中,而这不会进入eval
函数。另外,你的eval
代码在哪里? - Justinas$myStringParsed = "(35*$_POST[$var1]*64)/$_POST[$var2]";
应该改为$myStringParsed = "(35*{$_POST[$var1]}*64)/{$_POST[$var2]}";
,所以请添加{ }
。 - nl-x