在进行查询之前检查拼写

时间:2015-01-05 17:30:38

标签: php mysql database

我正在编写一个小程序,我想从MySQL数据库中提取用户输入字符串。但我不是在寻找完全匹配的字符串。例如

如果用户键入amazon,则应从数据库中提取amazon。但是,如果用户输入amazonnamazoamozon,它仍应该amazon,因为它是拼写错误的单词的最近单词。

这与Google搜索时的建议类似。无论如何在PHP中定义这样的函数?我是否必须导入字典并与之进行比较?

1 个答案:

答案 0 :(得分:2)

您可以通过两种方式使用strpos() How do I check if a string contains a specific word in PHP? 在用户输入的字符串中搜索数据库字符串 反之亦然:
搜索用户在DB字符串中输入的字符串。

这个问题是你只能覆盖字符串外部的差异 例如amazoamazonn但不是amozon

或者您可以使用评论中所述的levenshtein()similar_text() 有建议的好示例代码:
https://codereview.stackexchange.com/questions/27173/php-spell-checker-with-suggestions-for-misspelled-words

这应该以完全不同的方式涵盖......
我想你想要两个检查但是如果没有dicitonary那么一切都会很困难,所以我建议输入一个;)