loupe/matcher

Highlight and crop around search terms

Fund package maintenance!
Toflar

dev-main 2025-04-23 11:42 UTC

This package is auto-updated.

Last update: 2025-04-24 12:25:34 UTC


README

Caution

Work in progress

A utility to identify and highlight search terms and create snippets around matched sections.

Lorem ipsum dolor sit amet, consetetur [...] no sea takimata sanctus est lorem est ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur [...] dolore te feugait nulla facilisi lorem ipsum dolor sit amet, consectetuer [...]

Installation

composer require loupe/matcher

Usage

Highlight matches

$highlighter = new \Loupe\Matcher\Formatting\Highlighter(
    'lorem ipsum',
    '<mark>',
    '</mark>'
);

$context = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam eleifend, augue in dictum lacinia, nisi lacus mollis massa, a pulvinar felis dui nec nisl. Pellentesque justo erat, sollicitudin ac dolor finibus, dapibus lacinia diam.';

echo $matcher->apply($context); // <mark>Lorem ipsum</mark> dolor sit amet, consectetur adipiscing elit. Etiam eleifend, augue in dictum lacinia, nisi lacus mollis massa, a pulvinar felis dui nec nisl. Pellentesque justo erat, sollicitudin ac dolor finibus, dapibus lacinia diam.

Crop text around matches

$cropper = new \Loupe\Matcher\ContextCropper(
    20, // Context length in characters
    '[…]',
    '<mark>',
    '</mark>'
);

$context = 'Lorem ipsum dolor sit amet, <mark>consectetur</mark> adipiscing elit. Etiam eleifend, augue in dictum lacinia, nisi lacus mollis <mark>massa</mark>, a pulvinar felis dui nec nisl. Pellentesque justo erat, sollicitudin ac dolor finibus, dapibus lacinia diam.';

echo $cropper->apply($context); // […]ipsum dolor sit amet, <mark>consectetur</mark> adipiscing elit. Etiam[…]lacinia, nisi lacus mollis <mark>massa</mark>, a pulvinar felis dui[…]