在不使用评估的情况下生成动态测验问题

时间:2020-01-03 12:03:08

标签: php

我想创建一个测验,我可以从一组80个问题中抽取20个随机问题。但是,我希望这些问题能够包含一些脚本化元素,例如随机数,生成的图像和代码片段。

显而易见的答案是将这段代码放在数据库中并使用eval

$query_from_db  = '<div>
<?php

//php to run
function dosomething() {
     //bleh
}

?>
</div>
';

php echo eval($query_from_db);

但是我知道这是错误的,并且我不想这样做,请不要告诉我不要使用eval。我需要的是能够理解如何以不同的方式来解决这个问题。我应该将代码放在不同的include中并调用它吗,应该使用模板引擎,还是应该将其放在单独的PHP文件中并调用它们?

因此,这些问题可以由动态代码构成,这些动态代码是为每位使用该代码的人即时生成的随机数,随机图,随机文本。

1 个答案:

答案 0 :(得分:4)

我的建议是不要使用eval方法,而是为每个问题添加一些参数,这些参数可以在发送到浏览器之前替换掉。

您可能想看看sprintf函数,该函数以格式化的方式替换为字符串。

参数的格式(我将添加到不同的字段中)取决于您希望通过测验和其中的问题实现的目的。