PHPackages                             x3m/germanphonetic - 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. [Database &amp; ORM](/categories/database)
4. /
5. x3m/germanphonetic

ActiveLibrary[Database &amp; ORM](/categories/database)

x3m/germanphonetic
==================

Cologne phonetics implementations in PHP and SQL

374.4k↑1266.7%12[3 issues](https://github.com/deezaster/germanphonetic/issues)Java

Since Nov 17Pushed 6mo ago6 watchersCompare

[ Source](https://github.com/deezaster/germanphonetic)[ Packagist](https://packagist.org/packages/x3m/germanphonetic)[ RSS](/packages/x3m-germanphonetic/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Phonetischer Algorithmus nach dem Kölner Verfahren
==================================================

[](#phonetischer-algorithmus-nach-dem-kölner-verfahren)

Implementationen
----------------

[](#implementationen)

- **Oracle PL/SQL**: `x3m_soundex_ger.sql`
- **PHP**: `x3m_soundex_ger.php`
- **Kotlin**: `PhoneticConverter.kt` (Von Steffen Halstrick )
- **Dart**: `german_phonetics.kt` (Von Steffen Halstrick &lt;&gt;)

Einleitung
----------

[](#einleitung)

Die Kölner Phonetik (auch Kölner Verfahren) ist ein phonetischer Algorithmus, der Wörtern nach ihrem Sprachklang eine Zeichenfolge zuordnet, den phonetischen Code. Ziel dieses Verfahrens ist es, gleich klingenden Wörtern den selben Code zuzuordnen, um bei Suchfunktionen eine Ähnlichkeitssuche zu implementieren. Damit ist es beispielsweise möglich, in einer Namensliste Einträge wie "Meier" auch unter anderen Schreibweisen, wie "Maier", "Mayer" oder "Mayr", zu finden.

Die Kölner Phonetik ist, im Vergleich zum bekannteren Russell-Soundex-Verfahren, besser auf die deutsche Sprache abgestimmt. Sie wurde 1969 von Postel veröffentlicht.

Algorithmus
-----------

[](#algorithmus)

Die Kölner Phonetik bildet jeden Buchstaben eines Wortes auf eine Ziffer zwischen "0" und "8" ab, wobei für die Auswahl der jeweiligen Ziffer maximal ein benachbarter Buchstabe als Kontext benutzt wird. Einige Regeln gelten speziell für den Wortanfang (Anlaut). Auf diese Weise wird ähnlichen Lauten derselbe Code zugeordnet. Die beiden Buchstaben "W" und "V" beispielsweise werden mit der Ziffer "3" codiert. Der phonetische Code für "Wikipedia" lautet "3412". Im Gegensatz zum Soundex-Code ist die Länge des phonetischen Codes nach der Kölner Phonetik nicht beschränkt.

BuchstabeKontextCodeA, E, I, J, O, U, Y0H-B1Pnicht vor H1D, Tnicht vor C, S, Z2F, V, W3Pvor H3G, K, Q4Cim Anlaut vor A, H, K, L, O, Q, R, U, X4Cvor A, H, K, O, Q, U, X außer nach S, Z4Xnicht nach C, K, Q48L5M, N6R7S, Z8Cnach S, Z8Cim Anlaut außer vor A, H, K, L, O, Q, R, U, X8Cnicht vor A, H, K, O, Q, U, X8D, Tvor C, S, Z8Xnach C, K, Q8Dass für den Buchstaben "C" die Regel "*S*C" Vorrang vor der Regel "C*H*" hat, wurde durch den Zusatz "außer nach S, Z" in Zeile 10 der Tabelle berücksichtigt. Dies wird in der Originalveröffentlichung zwar nicht explizit erwähnt, kann aber aus den dort angeführten Beispielen geschlossen werden (z. B. für "Breschnew" wird als Code "17863" angegeben).

Die Umwandlung eines Wortes erfolgt in 3 Schritten:

1. Buchstabenweise Kodierung von links nach rechts entsprechend der Umwandlungstabelle.
2. Entfernen aller mehrfachen Codes.
3. Entfernen aller Codes "0" außer am Anfang.

### Beispiel

[](#beispiel)

Der Name "Müller-Lüdenscheidt" wird folgendermaßen kodiert:

1. Buchstabenweise Kodierung: 60550750206880022
2. Entfernen aller mehrfachen Codes: 6050750206802
3. Entfernen aller Codes "0": 65752682

Code Beispiele
--------------

[](#code-beispiele)

### PHP

[](#php)

```
require_once 'x3m_soundex_ger.php';
$phoneticcode = soundex_ger("Meier");
```

### Oracle PL/SQL

[](#oracle-plsql)

##### Funktion: SOUNDEX\_GER()

[](#funktion-soundex_ger)

```
Select SOUNDEX_GER('Meier'), SOUNDEX_GER('Meyer') from Dual
```

##### Funktion: SOUNDEX\_GER\_MW()

[](#funktion-soundex_ger_mw)

Die Funktion **SOUNDEX\_GER\_MW()** dient als Multi-Word-Wrapper von **SOUNDEX\_GER()**. d.h. Die Funktion bricht den Eingabe-String in einzelne Worte auf und codiert jedes einzelne Wort mit **SOUNDEX\_GER()**.

```
Select SOUNDEX_GER_MW('Mueller Luedenscheidt') from Dual
```

> Die Multi-Word-Funktion ist deshalb wichtig, weil auch schon das im Netz üblicherweise dokumentierte Beispiel Müller-Lüdenscheidt eigentlich falsch gewählt ist. Müller-Lüdenscheidt sind 2 Wörter und damit gibt es 2 Anlaute und 2 Auslaute. Bei diesem Beispiel tritt das nicht zu Tage, aber z.B. bei Heinz Classen (im Unterschied zu HeinzClassen, was nämlich normalerweise kodiert würde). Wird "Heinz Classen" mit der üblichen Implementierung kodiert und dabei ignoriert, dass es sich um 2 Wörter handelt, dann entsteht 068586, wobei Z zu 8 und C ebenfalls zu 8 wird und die zweite 8 entfällt. Wird es als zwei Wörter behandelt, dann wird C zu 4 und bleibt erhalten, also 068 4586.

###  Health Score

29

—

LowBetter than 59% of packages

Maintenance46

Moderate activity, may be stable

Popularity36

Limited adoption so far

Community21

Small or concentrated contributor base

Maturity13

Early-stage or recently created project

 Bus Factor1

Top contributor holds 78.1% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/549369?v=4)[Fonata](/maintainers/Fonata)[@fonata](https://github.com/fonata)

![](https://avatars.githubusercontent.com/u/1539838?v=4)[Andy Theiler](/maintainers/deezaster)[@deezaster](https://github.com/deezaster)

---

Top Contributors

[![deezaster](https://avatars.githubusercontent.com/u/1539838?v=4)](https://github.com/deezaster "deezaster (25 commits)")[![UnleashedMors](https://avatars.githubusercontent.com/u/59287650?v=4)](https://github.com/UnleashedMors "UnleashedMors (2 commits)")[![haenchen](https://avatars.githubusercontent.com/u/22911314?v=4)](https://github.com/haenchen "haenchen (1 commits)")[![jboockmann](https://avatars.githubusercontent.com/u/13167380?v=4)](https://github.com/jboockmann "jboockmann (1 commits)")[![QuoData](https://avatars.githubusercontent.com/u/59363142?v=4)](https://github.com/QuoData "QuoData (1 commits)")[![hannsen](https://avatars.githubusercontent.com/u/3775136?v=4)](https://github.com/hannsen "hannsen (1 commits)")[![fonata](https://avatars.githubusercontent.com/u/549369?v=4)](https://github.com/fonata "fonata (1 commits)")

---

Tags

algorithmusdartgermankotlinoracle-plphoneticphpsoundex-gersql

### Embed Badge

![Health badge](/badges/x3m-germanphonetic/health.svg)

```
[![Health](https://phpackages.com/badges/x3m-germanphonetic/health.svg)](https://phpackages.com/packages/x3m-germanphonetic)
```

###  Alternatives

[doctrine/orm

Object-Relational-Mapper for PHP

10.2k285.3M6.2k](/packages/doctrine-orm)[jdorn/sql-formatter

a PHP SQL highlighting library

3.9k115.1M102](/packages/jdorn-sql-formatter)[illuminate/database

The Illuminate Database package.

2.8k52.4M9.4k](/packages/illuminate-database)[ramsey/uuid-doctrine

Use ramsey/uuid as a Doctrine field type.

90440.3M211](/packages/ramsey-uuid-doctrine)[reliese/laravel

Reliese Components for Laravel Framework code generation.

1.7k3.4M16](/packages/reliese-laravel)[wildside/userstamps

Laravel Userstamps provides an Eloquent trait which automatically maintains `created\_by` and `updated\_by` columns on your model, populated by the currently authenticated user in your application.

7511.7M13](/packages/wildside-userstamps)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
