PHPackages                             deniskraev/php-search-correct - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Search &amp; Filtering](/categories/search)
4. /
5. deniskraev/php-search-correct

ActivePackage[Search &amp; Filtering](/categories/search)

deniskraev/php-search-correct
=============================

Automatic correction of the language for words in the text because of the wrong keyboard layout

0.4(2y ago)036MITPHP

Since Jan 16Pushed 2y agoCompare

[ Source](https://github.com/DenisKraev/php-serch-correct)[ Packagist](https://packagist.org/packages/deniskraev/php-search-correct)[ RSS](/packages/deniskraev-php-search-correct/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (3)DependenciesVersions (4)Used By (0)

Automatic correction of the language for words in the text because of the wrong keyboard layout. Автоматическое исправление языка для слов в тексте из-за неправильной раскладки клавиатуры
===========================================================================================================================================================================================

[](#automatic-correction-of-the-language-for-words-in-the-text-because-of-the-wrong-keyboard-layout-автоматическое-исправление-языка-для-слов-в-тексте-из-за-неправильной-раскладки-клавиатуры)

Назначение
----------

[](#назначение)

1. Корректировка поисковых запросов
2. Корректировка существующих и новых текстов, публикуемых посетителями на веб-сайтах.

Возможности
-----------

[](#возможности)

1. Режим `SIMILAR_CHARS`. Исправление ошибочно набранных букв в словах, которые выглядят одинаково в разных раскладках клавиатуры. Незаметные латинские буквы среди русских исправляются в русские и наоборот. Алгоритм работает достаточно надёжно и быстро.
2. Режим `KEYBOARD_LAYOUT`. Исправление ошибочно набранных слов в другой раскладке клавиатуры. Для определения языка используются N-граммы. Алгоритм может иногда ошибаться, работает в разы медленнее, чем SIMILAR\_CHARS. Для поддержания качества существует тестовый набор слов, который в поставку не входит.
3. Двухстороннее исправление слов для русского и английского языка.
4. Исправление слов на смешанном языке.
5. Кодировка символов — UTF8.
6. Класс может работать без расширений `mbstring` и `iconv`!

Примеры
-------

[](#примеры)

```
"\xd1\x81\xd0\xbesm\xd0\xbe" => 'cosmo' (2 первых и последняя буква — ошибочные)
"\x78\x70\x65н"              => 'хрен'  (первые 3 буквы — ошибочные)
"вебvfcnth"                  => 'вебмастер'
"webьфыеук"                  => 'webmaster'
"цццюмуыеш.ru"               => 'www.vesti.ru'
"\x54.\x43.\x48\x61вка"      => 'Т.С.Навка'

```

Пример работы алгоритма для поля ввода с автодополнением
--------------------------------------------------------

[](#пример-работы-алгоритма-для-поля-ввода-с-автодополнением)

1. Сделать выборку из БД по исходному запросу;
2. Если есть результат, возвратить его и исходный запрос;
3. Иначе скорректировать исходный запрос через `Text_LangCorrect`;
4. Если исходный и скорректированный запрос совпадает, возвратить пустой результат и исходный запрос;
5. Иначе сделать выборку из БД по скорректированному запросу;
6. Возвратить результат. Если результат не пустой, возвратить скорректированный запрос, иначе исходный.

Ссылки по теме
--------------

[](#ссылки-по-теме)

1. [Keyboard layout typos correction in text on English and Russian languages](https://github.com/rin-nas/language-typos/)

###  Health Score

19

—

LowBetter than 10% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity34

Early-stage or recently created project

 Bus Factor1

Top contributor holds 53.8% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~10 days

Total

3

Last Release

829d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/aa564548637e223a14165dbffade3d0ffd9faa9da6b0fb910d13eb3323f88064?d=identicon)[DenisKraev](/maintainers/DenisKraev)

---

Top Contributors

[![rin-nas](https://avatars.githubusercontent.com/u/956066?v=4)](https://github.com/rin-nas "rin-nas (7 commits)")[![DenisKraev](https://avatars.githubusercontent.com/u/1853445?v=4)](https://github.com/DenisKraev "DenisKraev (4 commits)")[![Grenfis](https://avatars.githubusercontent.com/u/7300990?v=4)](https://github.com/Grenfis "Grenfis (1 commits)")[![unti1x](https://avatars.githubusercontent.com/u/3488839?v=4)](https://github.com/unti1x "unti1x (1 commits)")

### Embed Badge

![Health badge](/badges/deniskraev-php-search-correct/health.svg)

```
[![Health](https://phpackages.com/badges/deniskraev-php-search-correct/health.svg)](https://phpackages.com/packages/deniskraev-php-search-correct)
```

###  Alternatives

[ruflin/elastica

Elasticsearch Client

2.3k50.4M203](/packages/ruflin-elastica)[opensearch-project/opensearch-php

PHP Client for OpenSearch

15024.3M65](/packages/opensearch-project-opensearch-php)[mailerlite/laravel-elasticsearch

An easy way to use the official PHP ElasticSearch client in your Laravel applications.

934529.3k2](/packages/mailerlite-laravel-elasticsearch)[massive/search-bundle

Massive Search Bundle

721.4M13](/packages/massive-search-bundle)[shyim/opensearch-php-dsl

OpenSearch/Elasticsearch DSL library

175.9M9](/packages/shyim-opensearch-php-dsl)[outl1ne/nova-multiselect-filter

Multiselect filter for Laravel Nova.

45802.7k3](/packages/outl1ne-nova-multiselect-filter)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
