loupe / matcher
Highlight and crop around search terms
Fund package maintenance!
Toflar
Requires
- php: ^8.1
- ext-intl: *
Requires (Dev)
- phpstan/phpstan: ^2.0
- phpunit/phpunit: ^10.5
- symfony/finder: ^6.2
- symfony/var-dumper: ^7.2
- symplify/easy-coding-standard: ^12.5
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[…]