0

这让我很烦。理论上它应该很容易,但我并不生活在理论上。

基本上,我可以选择设置自定义算法来制作字符串或 int 的“代码”。

这是用户生成的,然后我称之为。

我尝试使用以下代码执行它:

$code = eval('return($custalg);');

但这会返回输入的实际算法,而不是它会产生的值。

所以我的问题是,我将如何设法将 $custalg 中的字符串作为 php 执行,然后将结果保存到变量中?

4

2 回答 2

4

'看起来您不知道 PHP 中单引号和双引号"字符串之间的区别。你应该使用:

$code = eval("return($custalg);");

如果你想$custalog扩大:

双引号字符串最重要的特性是变量名将被扩展。有关详细信息,请参阅字符串解析。

在 docs 中查看更多信息

因此,基本上正确的语法取决于$custalg分配的内容和位置。在你的情况下,我猜你$custalg是在主代码中分配的,所以你不想替换。然后使用这样的代码:

$code = eval("return \$custalg;");
于 2012-10-20T18:46:06.667 回答
1

您可以使用PHP 输出控制函数获得回显输出:

ob_start();
eval("echo $custalg;");
$tmp = ob_get_contents();
ob_end_clean();
$evalOutput = $tmp;

或者您只需将返回值分配给全局变量。

于 2012-10-20T18:47:07.260 回答