Php 比较非';不完全匹配
我正在为一门大学课程做一个简短的回答测验。基本上,学生必须输入答案/关键词。我使用Php 比较非';不完全匹配,php,preg-match-all,Php,Preg Match All,我正在为一门大学课程做一个简短的回答测验。基本上,学生必须输入答案/关键词。我使用preg\u match\u all()进行字符串比较(用户答案和数据库中的答案)。我试着用一个词来回答,结果还行,但当它是一个短语提交时,就出现了一个问题 if(preg_match_all("/". $ans[$arr_ind]. "/i", " . $atext[$arr_ind] . ")){ echo "<p align='justify'><img sr
preg\u match\u all()
进行字符串比较(用户答案和数据库中的答案)。我试着用一个词来回答,结果还行,但当它是一个短语提交时,就出现了一个问题
if(preg_match_all("/". $ans[$arr_ind]. "/i", " . $atext[$arr_ind] . ")){
echo "<p align='justify'><img src='image/mark.png' border='0' width='20' height='20'></img><b> YOUR ANSWER: </b>". $ans[$arr_ind]. "</p>";
$total = $total + 1;
$correct = 1;
}
else
echo "<p align='justify'><img src='image/cross.png' border='0' width='20' height='20'></img> <b>YOUR ANSWER: </b>". $ans[$arr_ind]. "</p>";
if(preg_match_all(“/”$ans[$arr_ind]。“/i”、“$atext[$arr_ind]。”){
回显“你的答案:“.ans[$arr\u ind]”“
”;
$total=$total+1;
$correct=1;
}
其他的
回应“你的答案:”$ans[$arr_ind]。“
”;
例如:
提交的答案:硬件、软件
数据库中的答案:
Atikah您可以随时将答案分成各个部分,然后运行检查:
$answers = explode(",", $ans[$arr_ind]);
foreach ($answers as $answer) {
$answer = trim($answer);
if (stripos($atext[$arr_ind], $answer) !== false)
// correct
else
// incorrect
}
我还回答了您之前的问题,我认为发布的答案包含$ans[]正确吗?这就是第一行中引用的内容,但是根据需要切换数组
stripos将以更友好的语法和更快的执行速度完成与您的*preg_match*相同的操作。然后您应该将答案标记为单个单词并进行匹配。此外,由于学生可能不会使用逗号分隔数据,您可能希望按空格进行分解,然后删除逗号等无关数据,而不是按我的代码中所示的相反方式。您的解决方案为我做到了:)分解注意事项。非常感谢你。感谢您的帮助。如果我将字符串与多行数据进行比较,您能建议一种方法吗?