在 php 中使用 eval() 中的函数
Using a function inside eval() in php
$answra[$j] = '$qry['.$answers[$j].']';
eval("echo stripSlashes($answra[$j]); ");
我尝试了不同的方法,但我无法使用 eval() 来显示输出。我关注了一个相关的 post 并得到了这个,但它并没有起作用。
$str = "echo (stripSlashes($answra[$j])) ;" ;
eval("?> $str <?php ");
还有更简单的选择吗?
(我假设你有理由使用eval,这是不鼓励的,无论如何,让我给你我的解决方案)
好吧,我们有这个错误的例子:
$string = "asdfg";
eval("echo stripSlashes($string); ");
这将不起作用,因为在
中使用了字符串
eval("echo stripSlashes($string); ");
结果
echo stripSlashes(asdfg);
你可以看到 asdfg
不再是一个真正的字符串。
你需要做的是像这样转义变量:
eval("echo stripSlashes($string); ");
这样你的解释器就会知道不要考虑这个变量。
TL;DR:
这个反斜杠应该可以解决问题:
$answra[$j] = '$qry['.$answers[$j].']';
eval("echo stripSlashes($answra[$j]); ");
使用单引号而不是双引号,以防止变量在包含在字符串中时被扩展。它会在解析参数时扩展eval
。
eval('echo stripSlashes($answra[$j]); ');
$answra[$j] = '$qry['.$answers[$j].']';
eval("echo stripSlashes($answra[$j]); ");
我尝试了不同的方法,但我无法使用 eval() 来显示输出。我关注了一个相关的 post 并得到了这个,但它并没有起作用。
$str = "echo (stripSlashes($answra[$j])) ;" ;
eval("?> $str <?php ");
还有更简单的选择吗?
(我假设你有理由使用eval,这是不鼓励的,无论如何,让我给你我的解决方案)
好吧,我们有这个错误的例子:
$string = "asdfg";
eval("echo stripSlashes($string); ");
这将不起作用,因为在
中使用了字符串eval("echo stripSlashes($string); ");
结果
echo stripSlashes(asdfg);
你可以看到 asdfg
不再是一个真正的字符串。
你需要做的是像这样转义变量:
eval("echo stripSlashes($string); ");
这样你的解释器就会知道不要考虑这个变量。
TL;DR:
这个反斜杠应该可以解决问题:
$answra[$j] = '$qry['.$answers[$j].']';
eval("echo stripSlashes($answra[$j]); ");
使用单引号而不是双引号,以防止变量在包含在字符串中时被扩展。它会在解析参数时扩展eval
。
eval('echo stripSlashes($answra[$j]); ');