PHPackages                             nmapx/bmdm-soundex - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. nmapx/bmdm-soundex

ActiveProject[Utility &amp; Helpers](/categories/utility)

nmapx/bmdm-soundex
==================

Beider-Morse plus Daitch-Mokotoff soundex

2.1.0(5y ago)019.4k↓30.4%1[1 PRs](https://github.com/nmapx/BMDMSoundex/pulls)GPL-3.0+PHPPHP &gt;=5.4.0

Since Oct 13Pushed 5y agoCompare

[ Source](https://github.com/nmapx/BMDMSoundex)[ Packagist](https://packagist.org/packages/nmapx/bmdm-soundex)[ RSS](/packages/nmapx-bmdm-soundex/feed)WikiDiscussions master Synced 2d ago

READMEChangelogDependencies (2)Versions (5)Used By (0)

Beider-Morse + Daitch-Mokotoff Soundex Algorithm
================================================

[](#beider-morse--daitch-mokotoff-soundex-algorithm)

This is a fork of the algorithm developed by Alexander Beider and Stephen P. Morse for phonetic matching of names and words. This algorithm generates less quantity of false hits comparing to soundex() and methaphone(). Also it's possible to use this algorithm for some non-latin alphabets without a transliteration.

### Credits

[](#credits)

Authors: **Alexander Beider, Paris** and **Stephen P. Morse, San Francisco**
Website:  (source download, information and contacts)

### Information

[](#information)

Currently there are 16 languages supported: Czech, Dutch, English, French, German, Greek (and Greek Latin), Hebrew, Hungarian, Italian, Latvian, Polish, Portuguese, Romanian, Russian (latin and cyrillic), Spanish, Turkish. Also BMPM (Beider-Morse Phonetic Matching) and BMDM as it's derivative can parse Hebrew names by Ashkenazic and Sephardic rules.

### Differences

[](#differences)

This fork's goal is to get rid of deprecated and global functions, global variables and to represent algorithm in OOP-like style. Also there were implemented some fixes and modifications for unification purposes. While exceeding the limits of procedural code now it's possible to include algorithm in frameworks and third-parity applications without a headache. Latvian language experimental support added.

### Requirements

[](#requirements)

PHP 5.4+; mbstring extenstion

### Performance

[](#performance)

I strongly encourage to use PHP 7.0 and newer due to major performance enhancement since 5.x versions especially in array processing which is crucial for BMDM. Also there's built-in caching support - make sure that ./runtime directory is writable and let BMDM precompile and cache it's runtime rules. Here're charts of performance with and without caching. Also caching lowers I/O load. [Test results available here](http://haran.github.io/BMDMSoundex/performance.html) .

Usage
=====

[](#usage)

Include BMDM.php or better use composer to install: **composer require dautkom/bmdm**

```
