我正在编写一个小程序,我想从MySQL数据库中提取用户输入字符串。但我不是在寻找完全匹配的字符串。例如
如果用户键入amazon
,则应从数据库中提取amazon
。但是,如果用户输入amazonn
或amazo
或amozon
,它仍应该amazon
,因为它是拼写错误的单词的最近单词。
这与Google搜索时的建议类似。无论如何在PHP中定义这样的函数?我是否必须导入字典并与之进行比较?
答案 0 :(得分:2)
您可以通过两种方式使用strpos()
How do I check if a string contains a specific word in PHP?
在用户输入的字符串中搜索数据库字符串
反之亦然:
搜索用户在DB字符串中输入的字符串。
这个问题是你只能覆盖字符串外部的差异
例如amazo
或amazonn
但不是amozon
或者您可以使用评论中所述的levenshtein()
和similar_text()
有建议的好示例代码:
https://codereview.stackexchange.com/questions/27173/php-spell-checker-with-suggestions-for-misspelled-words
这应该以完全不同的方式涵盖......
我想你想要两个检查但是如果没有dicitonary那么一切都会很困难,所以我建议输入一个;)