PHP-如何建议搜索字词,“你是说……?” - php

当使用不检索任何结果的术语搜索数据库时,我想允许“您是不是……”建议(例如Google)。
例如,如果有人寻找“ jquyer
”,它将输出“ did you mean jquery?

当然,建议结果必须与数据库内部的值匹配(我正在使用mysql)。

您知道可以做到这一点的图书馆吗?我已经用谷歌搜索过,但是没有找到任何好的结果。
或者,也许您有一个想法,该如何独自构建?

参考方案

快速简便的解决方案涉及SOUNDEX或类似于SOUNDEX的功能。

简而言之,SOUNDEX函数最初用于处理常见的拼写错误和姓氏的备用拼写,并且此函数很好地封装了许多常见的拼写错误(英语)。由于它专注于姓氏,因此原始的soundex函数可能会受到限制(例如,编码在第三个或第四个非重复辅音字母之后停止),但是很容易扩展算法。

这种功能的好处在于,它允许提前计算可以与单词关联的单个值。这与诸如edit distance函数(例如Levenshtein,Hamming甚至Ratcliff / Obershelp)之类的字符串距离函数不同,后者提供相对于一对字符串的值。

通过为字典中的所有单词预先计算和索引SOUNDEX值,可以在运行时根据用户提供的搜索词的[运行时]计算出的SOUNDEX值快速搜索字典/数据库。此Soundex搜索可以作为普通关键字搜索的补充而系统地完成,或者仅在关键字搜索未产生令人满意的记录数时才执行,因此提供了提示,提示用户提供的关键字可能是)拼写错误。

完全不同的方法(仅适用于包含多个单词的用户查询)基于对字典/数据库运行多个查询,但不包括一个(或几个)用户提供的关键字。这些替代查询的结果列表提供了不同单词的列表;该[减少的]单词列表通常足够小,以使得可以应用基于对的距离函数来在列表中选择更接近所谓的拼写错误的单词的单词。词频(在结果列表中)可用于限制词的数量(仅评估发现x次以上的词的相似性),以及提供权重以稍微歪曲相似性度量(即在数据库中“数量上”找到的偏爱字词,即使它们的相似度测量值略小)。

PHP-将日期插入日期时间字段 - php

我已在数据库中使用datetime字段存储日期,使用PHP将“今天的日期”插入该字段的正确方法是什么?干杯, 参考方案 我认为您可以使用php date()函数

php ziparchive类源代码 - php

Improve this question 我如何获取ziparchive类本身的源代码。 参考方案 假设您在谈论PHP ZipArchive class:下载PHP source code并查找适当的文件。如果您希望源代码是PHP代码,您可能会感到失望,因为源代码是用C语言编写的。或者,也可以在PHP Github Development Reposito…

PHP getallheaders替代 - php

我正在尝试从服务器上的apache切换到nginx。唯一的问题是我在PHP脚本中使用的getallheaders()函数,该函数不适用于Nginx。我已经尝试过用户在getallheaders函数上的php站点上提供的注释,但这并不返回所有请求标头。请告诉我如何解决这个问题。我真的想切换到Nginx。 参考方案 您仍然可以使用它,但是您必须像这里一样重新定义…

php:将分钟取整到最近的四分之一小时,然后执行更多操作 - php

最初的问题是这样的:取分钟数->转换为四分之一小时-> 1个四分之一小时为1个单位->输出单位我今天整天都在整理页面,几分钟前我的大脑就停止工作了,我只是不知道如何输出单位数量。我知道在此网站上发布问题会有所帮助。因此,用户输入的分钟数(不是小时和分钟,而是数分钟),站点需要输出单位数量。单位是一个刻钟。分钟总是四舍五入到最近的四分之一小时…

PHP mysqli获取查询返回的第一行的值 - php

我正在使用mysqli从数据库中获取某些数据。我正在使用的查询已设置为仅从数据库返回一行。有没有一种方法可以在不使用while循环的情况下获取该行的值?我知道一个while循环对于返回多于一行的行很有用,但是如果不需要while循环,我想避免这种情况,因为不必要的代码是不好的编程。 参考方案 是的-您可以使用:$row = $result->fetch…