【问题标题】:PHP - How to check if the spelling of a string is correct or not? No “suggestions for misspelled words” needed. Just return plain true or falsePHP - 如何检查字符串的拼写是否正确?不需要“拼写错误单词的建议”。只需返回纯真或假
【发布时间】:2015-12-07 14:50:10
【问题描述】:

我有一个随机生成的字符串数组。现在,我将如何根据美国英语词典检查字符串是否拼写正确。这样,我可以从列表中删除非英语单词。

我现在所做的是遍历列表并将其查询到字典单词数据库。不幸的是,它效率不高,尤其是如果我的列表包含数百个单词。

我已阅读有关 Aspell 的信息,但不幸的是,我必须安装它,而且我受到限制,因为我将程序托管在共享网络托管中。

无论如何,这是我目前所拥有的:

//  generate random strings using the method I coded
//  returns a string array of generated strings
//  no duplicates generated here
//  just plain permutations
$generated_list = generate();

因为我读过一篇文章,而不是循环并查询每个字符串,我只做了一个查询,比如Performing A Query In A Loop

$only_english_list = [];
if (count($generated_list)) {
    $result = $connection->query("SELECT `word` FROM `us_eng` WHERE `word` IN (" . implode(',', $generated_list));
    while ($row = $result->fetch_row()) {
        $only_english_list[] = $row['word'];
    }
}

但是,检查字符串是否在英文字典中是否更有效?类似于返回 true 或 false 的方法?

【问题讨论】:

  • @NiranjanNRaju:他之前(有时之前)只就这个问题问过同样的问题。它已关闭并仅由 USER 删除。再次,他问了同样的问题,没有代码。
  • 我只是遍历数组,每个字符串都被查询到包含英文单词的数据库表中。
  • @NanaPartykar 确实知道...无论如何,问题将再次关闭...
  • @LynnellEmmanuelNeri,我们在这里帮助您编写代码,而不是编写代码...
  • @LynnellEmmanuelNeri 没有人希望你感到不受欢迎 - 但是显示你的代码是一项要求,因为人们简单地期望 SO 用户为他们做他们的工作并不少见,显示代码证明你是真正尝试解决问题但需要帮助。

标签: php dictionary


【解决方案1】:

我现在有了这个问题的答案。这就是我所做的。我没有生成需要大量时间和资源的排列,而是立即利用 MySQL 的功能。也就是说,我对一个特定长度的英文单词表使用了 REGEXP 或 LIKE。

因此,对于可以从vleoly 组成的英语单词,我使用此查询来查找长度为 6 的英语单词表,并由us_6 记录。

    SELECT word FROM us_6 WHERE
    word REGEXP 'v' AND
    word REGEXP 'l.*l' AND
    word REGEXP 'e' AND
    word REGEXP 'o' AND
    word REGEXP 'y'

生成的结果是lovelyvolley

欲了解更多信息,请查看MySQL, REGEXP - Find Words Which Contain Only The Following Exact Letters

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-25
    • 2011-05-30
    • 1970-01-01
    • 1970-01-01
    • 2011-05-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多