batrox / phonetic-algorithms
Phonetic-Algorithms for fuzzy searching | PHP
Fund package maintenance!
voku
Patreon
www.paypal.me/moelleken
Requires
- php: >=8.0.0
- batrox/portable-utf8: ~1.0
- voku/stop-words: ~2.0
Requires (Dev)
- phpunit/phpunit: ~6.0 || ~7.0 || ~9.0
This package is auto-updated.
Last update: 2024-11-29 15:56:49 UTC
README
Phonetic-Algorithms
Description
- "PhoneticGerman"-Class:
A phonetic algorithms for the german language via "Kölner Phonetik": en.wikipedia.org/wiki/Cologne_phonetics
- "PhoneticEnglish"-Class:
A phonetic algorithms for the english language via "metaphone": en.wikipedia.org/wiki/Metaphone
- "PhoneticFrench"-Class:
A phonetic algorithms for the french language via "SOUNDEX FR": www.roudoudou.com/phonetic.php
Installation
- Install and use composer in your project.
- Require this package via composer:
composer require voku/phonetic-algorithms
Usage
You the "phonetic_word"-method if you need a fuzzy-search for single words e.g. last-names or product-names.
use voku\helper\Phonetic; $words = array( 'Moelleken', 'Mölleken', 'Möleken', 'Moeleken', 'Moellecken', 'Möllecken', 'Mölecken', ); $phonetic = new Phonetic('de'); foreach ($words as $word) { $phonetic->phonetic_word($string); // '6546' }
You can use the "phonetic_sentence"-method to process sentences.
use voku\helper\Phonetic; $string = 'Ein Satz mit vielen Wortern'; $phonetic = new Phonetic('de'); $phonetic->phonetic_sentence($string, (bool) false, (false|int) false); // [ // 'Ein' => '06', // 'Satz' => '8', // 'mit' => '62', // 'vielen' => '356', // 'Wortern' => '37276' // ]
You can use the "phonetic_matches"-method to search for words in an array of words.
use voku\helper\Phonetic; $phonetic = new Phonetic('de'); $tests = array( 'Moelleken', // '6546', 'Mölleken', // '6546', 'Möleken', // '6546', 'Moeleken', // '6546', 'oder', // '027', 'was', // '38', 'Moellecken', // '6546', 'Möllecken', // '6546', 'Mölecken', // '6546', ); $phonetic->phonetic_matches('Moelleken', $tests); // [ // 'Moelleken' => 'Moelleken', // 'Mölleken' => 'Moelleken', // 'Möleken' => 'Moelleken', // 'Moeleken' => 'Moelleken', // 'Moellecken' => 'Moelleken', // 'Möllecken' => 'Moelleken', // 'Mölecken' => 'Moelleken', // ]
History
See CHANGELOG for the full history of changes.