PHP Manual
/
Algorithmen

Validierung und Formatierung von Telefonnummern

18. 06. 2021

Obsah článku

Es gibt keine einfache Möglichkeit, Telefonnummern in PHP zu validieren und zu formatieren, also habe ich eine einfache Bibliothek geschrieben, die keine Abhängigkeiten hat, aber trotzdem diese Aufgabe übernehmen kann.

Ziel ist es, das Format einer Telefonnummer zu überprüfen oder sie in eine einfache kanonische Form zu konvertieren (die immer gültig ist).

Installation von

Einfach durch den Komponisten:

$ composer require baraja-core/phone-number

Oder laden Sie das Paket Download auf GitHub herunter.

Wie man die Bibliothek benutzt

Das Prinzip dieses Tools basiert auf der Formatierung und Validierung von Telefonnummern, die vom Benutzer oder aus Quellen stammen, über die Sie keine Kontrolle haben.

Die häufigste Verwendung ist die Korrektur der Formatierung von Telefonnummern:

$original = '+420 777123456';
$formatted = \Baraja\PhoneNumber\PhoneNumberFormatter::fix($original);
echo $original . '<br>';
echo $formatted;

Die Funktion korrigiert die Zahlenformatierung und gibt die Zeichenfolge "+420 777 123 456" zurück.

Wird vom Benutzer kein Präfix angegeben, wird das Präfix "+420" angenommen. Sie können die Standardeinstellung mit dem zweiten Parameter ändern:

// Rückgabe: +421 777 123 456
\Baraja\PhoneNumber\PhoneNumberFormatter::fix('+420 777123456', 421);

Der Telefoncode wird nur überschrieben, wenn der Benutzer ihn nicht eingibt und er nicht automatisch erkannt wird.

Eingabe- und Ausgabeformatierung

Die Eingabezeichenfolge kann (fast) beliebig aussehen. Der eingebaute Algorithmus kann automatisch ungültige Zeichen entfernen (z. B. schreiben manche Benutzer eine Notiz neben eine Telefonnummer, die automatisch entfernt wird). Sie müssen sich also keine Gedanken über die Formatierung der Eingabe machen, aber die Ausgabe wird immer konsistent sein.

Die Ausgabe sieht immer gleich aus (sie ist auf das kanonische Format normalisiert).

Das allgemeine Format ist:

+420 777 123 456
| \_________/
Prefix |
National number

Wenn Sie eine ungültige Eingabe machen (oder eine Eingabe, die nicht automatisch korrigiert werden kann), wird eine Ausnahme ausgelöst.

Fehlerbehebung

Wenn eine Zahl nicht sicher auf eine Basisform normalisiert werden kann oder nicht existiert, wird eine Ausnahme "InvalidArgumentException" ausgelöst.

Wenn Sie die Ausnahme in einen Booleschen Wert umwandeln möchten, verwenden Sie den integrierten Asset Validator:

\Baraja\PhoneNumber\PhoneNumberValidator::isValid('123'); // falsch
\Baraja\PhoneNumber\PhoneNumberValidator::isValid('777123456'); // wahr
\Baraja\PhoneNumber\PhoneNumberValidator::isValid('+420 777123456'); // wahr
\Baraja\PhoneNumber\PhoneNumberValidator::isValid('+420 777 123 456'); // wahr
\Baraja\PhoneNumber\PhoneNumberValidator::isValid('+420 77 712 34 56'); // wahr

Jan Barášek   Více o autorovi

Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.

Rád vám pomůžu:

Související články

1.
3.
Status:
All systems normal.
2024