Package Data | |
---|---|
Maintainer Username: | rap2hpoutre |
Maintainer Contact: | raphaelht@gmail.com (rap2hpoutre) |
Package Create Date: | 2015-04-21 |
Package Last Update: | 2023-09-01 |
Home Page: | http://twitter.com/rap2h |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2024-11-14 15:14:40 |
Package Statistics | |
---|---|
Total Downloads: | 75,283 |
Monthly Downloads: | 210 |
Daily Downloads: | 8 |
Total Stars: | 136 |
Total Watchers: | 11 |
Total Forks: | 17 |
Total Open Issues: | 0 |
Similar text finder. Install via composer, works with any framework: Laravel, Slim, Symfony, etc.
// Init Similar Text Finder with a needle and a haystack
$text_finder = new \SimilarText\Finder('bananna', ['apple', 'banana', 'kiwi']);
// Get first similar word (it's banana)
echo $text_finder->first();
Install with composer
composer require rap2hpoutre/similar-text-finder
.
That's all.
You can now use it in your framework's controller, or wherever you want (you don't need a framework anyway).
Just build a new Similar Text Finder like this:
$tf = new \SimilarText\Finder($needle, $haystack);
$needle
may be the user input and $haystack
should be an array with all your suggestion. You can display the closest response like this:
echo 'Did you mean ' $tf->first() . ' ?';
Or use it in your favorite template engine (Twig, Blade, etc.)
You can get all your suggestion ordered by most approching words like this:
$all = $tf->all();
use SimilarText\Finder;
// User input with a typo (you could get it from $_GET)
$needle = 'tmatoes';
// Your list (from your database or an API)
$haystack = ['salad', 'tomatoes', 'onions', 'mates'];
// Init Text Finder
$finder = new Finder($needle, $haystack);
// Display all results ordered by the most approching
$results = $finder->all();
echo implode(', ', $results);
// You should see something like "tomatoes, mates, onions, salad", yohoo.