我想创建一个测验,我可以从一组80个问题中抽取20个随机问题。但是,我希望这些问题能够包含一些脚本化元素,例如随机数,生成的图像和代码片段。
显而易见的答案是将这段代码放在数据库中并使用eval
$query_from_db = '<div>
<?php
//php to run
function dosomething() {
//bleh
}
?>
</div>
';
php echo eval($query_from_db);
但是我知道这是错误的,并且我不想这样做,请不要告诉我不要使用eval。我需要的是能够理解如何以不同的方式来解决这个问题。我应该将代码放在不同的include中并调用它吗,应该使用模板引擎,还是应该将其放在单独的PHP文件中并调用它们?
因此,这些问题可以由动态代码构成,这些动态代码是为每位使用该代码的人即时生成的随机数,随机图,随机文本。
答案 0 :(得分:4)
我的建议是不要使用eval
方法,而是为每个问题添加一些参数,这些参数可以在发送到浏览器之前替换掉。
您可能想看看sprintf
函数,该函数以格式化的方式替换为字符串。
参数的格式(我将添加到不同的字段中)取决于您希望通过测验和其中的问题实现的目的。