- "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
- Install and use composer in your project.
- Require this package via composer:
composer require voku/phonetic-algorithms
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',
// ]
See CHANGELOG for the full history of changes.