richarddobron / highlight-search-term
Lightweight PHP library designed to highlight search terms in text.
0.1.0
2025-04-14 16:24 UTC
Requires
- php: ^8.1
- ext-intl: *
- ext-mbstring: *
- nitotm/efficient-language-detector: ^3.0
- toflar/state-set-index: ^3.0
- wamania/php-stemmer: ^3.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.2.1
- phpstan/phpstan: ^2.0
- phpunit/phpunit: ^10.5
README
Lightweight PHP library designed to highlight search terms in text.
📖 Requirements
- PHP 8.1 or higher
- Composer is required for installation
- PHP Extensions:
ext-intl
,ext-mbstring
📦 Installation
Install the library using Composer:
$ composer require richarddobron/highlight-search-term
⚡️ Quick Start
Here’s how to use the library to highlight search terms:
use dobron\Highlight\Config\TypoTolerance; use dobron\Highlight\Configuration; use dobron\Highlight\HighlightFactory; use dobron\Highlight\SearchParameters; $configuration = Configuration::create() ->withLanguages(['en']) ->withMaxQueryTokens(10) ->withTypoTolerance(TypoTolerance::create()->withFirstCharTypoCountsDouble(false)); // can be further fine-tuned but is enabled by default $highlightResult = (new HighlightFactory()) ->create(__DIR__ . '/cache', $configuration) ->highlight('world', 'Hello world!'); echo $highlightResult->getHighlightedText(); // Hello <em>world</em>!
⚙️ Configuration Options
You can customize the library with the following methods:
Method | Description | Default |
---|---|---|
withLanguages(array $languages) |
Sets the languages to be used for tokenization. | [] |
withMaxQueryTokens(int $maxQueryTokens) |
Sets the maximum number of tokens to be used for tokenization. | 10 |
withStopWords(array $stopWords) |
Sets the stop words to be used for tokenization. | [] |
withSynonyms(array $synonyms) |
Sets the synonyms to be used for tokenization. | [] |
withMinTokenLengthForPrefixSearch(int $minTokenLength) |
Sets the minimum token length for prefix search. | 3 |
withTypoTolerance(TypoTolerance $typoTolerance) |
Sets the typo tolerance configuration. | TypoTolerance::create() |
withLanguageDetection(bool $languageDetection) |
Enables or disables language detection. | false |
📅 Change Log
Please see CHANGELOG for more information on what has changed recently.
🧪 Testing
$ composer test
🤝 Contributing
Please see CONTRIBUTING for details.
🙋 Credits
⚖️ License
This repository is MIT licensed, as found in the LICENSE file.