【发布时间】:2019-05-11 17:45:15
【问题描述】:
我正在编写一个脚本,该脚本允许学生将他们的答案输入到表单中,并就他们的答案提供即时反馈。
我从一个字符串 ($content) 开始,其中包含完整的任务,方括号中有空格,如下所示:
There's [somebody] in the room. There isn't [anybody] in the room.
Is [anybody] in the room?
现在脚本识别解决方案(某人、任何人、任何人)并将它们保存在一个数组中。学生的答案也在一个数组中。
要查看答案是否正确,脚本会检查 $input[$i] 和 $solution[$i] 是否相同。
现在问题来了:我希望脚本用输入框替换占位符,其中解决方案错误,绿色解决方案正确。然后,此更新版本的 $content 将显示在下一页上。 但是如果有两个相同的解决方案,这会导致多次替换,因为替换被再次替换......
我尝试将 preg_replace 限制为 1,但这也不起作用,因为它不会跳过已被替换的解决方案。
$i=0; 而($解决方案[$i]){ //回答正确 if($solution[$i] == $input[$i]){ //替换占位符>绿色解决方案 $content = str_replace($solution[$i], $solution_green[$i], $content); } //回答错误 别的{ //替换占位符>输入框重试 $content = str_replace($solution[$i], $solution_box[$i], $content); } $i++; } 打印$内容; //根据学生的回答输出新表格有什么办法可以避免更换替代品吗?
我希望我没有过多地闲逛......多年来一直在为这个问题绞尽脑汁,如果有任何建议,我将不胜感激。
【问题讨论】: