php - 在不使用 eval 的情况下生成动态测验问题
问题描述
我想创建一个测验,我可以从一组 80 个问题中随机抽取 20 个问题。但我希望这些问题能够包含一些脚本元素,例如随机数、生成的图像和代码片段。
显而易见的答案是将此代码放入数据库并使用 eval
$query_from_db = '<div>
<?php
//php to run
function dosomething() {
//bleh
}
?>
</div>
';
php echo eval($query_from_db);
但是我知道这是错误的,我不想这样做,请不要告诉我不要使用 eval。我需要的是能够理解如何以不同的方式解决这个问题。我应该把我的代码放在不同的包含并调用它,我应该使用模板引擎,我应该把它放在单独的 PHP 文件中并调用它们吗?
这样问题就可以由随机数字、随机图表、随机文本的动态代码组成,为每个接受它的人动态生成。
解决方案
我的建议是不要使用eval
方法,而是为每个问题添加一些参数,这些参数可以在发送到浏览器之前替换掉。
您可能想查看以sprintf
格式化方式替换字符串的函数。
您的参数格式(我将添加到不同的字段中)取决于您希望通过测验实现的目标以及其中的问题。
推荐阅读
- python - 从另一个包含字典键的 ndarray 构造值的 ndarray
- kotlin - 如何获取诸如 BaseResponse 之类的泛型类的 KClass
> - java - PermissionUtils 无法解决
- javascript - 使用临时安全凭证进行身份验证
- elasticsearch - Elasticsearch:遇到可重试的错误
- php - Wordpress - 如果用户删除了他们的帐户,则更新功能
- python - cx_oracle 执行没有错误,但不删除数据
- mysql - MySQL 对 3 个表的连接查询
- r - 如何在 R 中的水平条上绘制时间序列数据?
- react-native - react-native“在这种环境中,分配的来源必须是一个对象”错误与RNSwipeout