1. Go to this page and download the library: Download zendevio/bmpm library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
zendevio / bmpm example snippets
use Zendevio\BMPM\BeiderMorse;
// Simple usage
$encoder = new BeiderMorse();
$phonetic = $encoder->encode('Schwarzenegger');
// Returns: "(Svarcenegr|## more alternatives...)"
// Check if two names might match
$matches = $encoder->matches('Smith', 'Schmidt');
// Returns: true (they share phonetic codes)
// Get similarity score
$similarity = $encoder->similarity('Mueller', 'Miller');
// Returns: float between 0.0 and 1.0
use Zendevio\BMPM\BeiderMorse;
use Zendevio\BMPM\Enums\NameType;
use Zendevio\BMPM\Enums\MatchAccuracy;
use Zendevio\BMPM\Enums\Language;
// Fluent configuration
$encoder = BeiderMorse::create()
->withNameType(NameType::Ashkenazic) // Generic, Ashkenazic, or Sephardic
->withAccuracy(MatchAccuracy::Approximate) // Exact or Approximate
->withLanguages(Language::German, Language::Polish);
// Encode to array of alternatives
$alternatives = $encoder->encodeToArray('Kowalski');
// Returns: ['kovalski', 'kovalske', ...]
// Batch encoding
$results = $encoder->encodeBatch(['Smith', 'Jones', 'Williams']);
// Returns: ['Smith' => '(smit|...)', 'Jones' => '...', ...]
// Ashkenazic mode for Eastern European Jewish names
$encoder = BeiderMorse::create()
->withNameType(NameType::Ashkenazic);
// Sephardic mode for Spanish/Portuguese Jewish names
$encoder = BeiderMorse::create()
->withNameType(NameType::Sephardic);
$encoder = new BeiderMorse();
// Detect all possible languages
$languages = $encoder->detectLanguages('Müller');
// Returns: [Language::German]
// Get primary language
$primary = $encoder->detectPrimaryLanguage('Kowalski');
// Returns: Language::Polish
$encoder = BeiderMorse::create()
->withLanguages(Language::German, Language::English, Language::French);
// Or using a bitmask directly
$encoder = BeiderMorse::create()
->withLanguageMask(Language::German->value | Language::English->value);
// Use custom rule files location
$encoder = BeiderMorse::create()
->withDataPath('/path/to/custom/rules');
use Zendevio\BMPM\Engine\PhoneticEngine;
use Zendevio\BMPM\Engine\LanguageDetector;
use Zendevio\BMPM\Rules\RuleLoader;
$ruleLoader = RuleLoader::create();
$detector = new LanguageDetector($ruleLoader);
$engine = new PhoneticEngine($ruleLoader, $detector);
$result = $engine->encode('name', NameType::Generic, MatchAccuracy::Approximate);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.