首页 > 解决方案 > 在不使用 eval 的情况下生成动态测验问题

问题描述

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

显而易见的答案是将此代码放入数据库并使用 eval

$query_from_db  = '<div>
<?php

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

?>
</div>
';

php echo eval($query_from_db);

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

这样问题就可以由随机数字、随机图表、随机文本的动态代码组成,为每个接受它的人动态生成。

标签: php

解决方案


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

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

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


推荐阅读