richarddobron/highlight-search-term

Lightweight PHP library designed to highlight search terms in text.

0.1.0 2025-04-14 16:24 UTC

This package is auto-updated.

Last update: 2025-04-14 16:29:46 UTC


README

HIGHLIGHT your search

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.