在给定的宽容度下,如何最好地看到给定的字符串是否在另一个字符串中?

Tot*_*rvo 0 php strpos laravel

我正在尝试在laravel中创建一个程序,一个人可以回答一个问题。在控制器中,我想检查namedAnswer是否与任何实际答案匹配。

我在网上看到了一些建议的东西。大多数人建议使用strpos。但是,我发现它无法正常运行。

例如,如果正确答案之一是“ Quorin Halfhand”,则strpos将对诸如“ Quo,Half,Hand,alf等”之类的答案显示return true。

我可以选择一个选项,让我进行清理并陈述我愿意接受的错误程度。

有什么有用的东西吗?

if (strpos($answers[$i], $request->answer) !== false) {
      return 'an answer matches!';
 } else {
      return 'no answer mathches'
 }
Run Code Online (Sandbox Code Playgroud)

Gra*_*ham 5

您可以尝试计算两个字符串之间的levenshtein距离,然后将结果与您选择的阈值进行比较。