Telefonnummern in PHP formatieren

Minahil Noor 26 Dezember 2020
  1. Verwendung von die Funktion preg_match() zur Formatierung von Telefonnummern in PHP
  2. Verwendung von die Funktion sprintf() zur Formatierung von Telefonnummern in PHP
Telefonnummern in PHP formatieren

In diesem Artikel werden wir über verschiedene Methoden zur Formatierung von Telefonnummern mit PHP sprechen. Wir werden die Telefonnummer von +13335092344 auf 333-509-2344 formatieren.

Verwendung von die Funktion preg_match() zur Formatierung von Telefonnummern in PHP

Wir können die eingebaute Funktion preg_match() verwenden, um Telefonnummern zu formatieren. Diese Funktion sucht ein angegebenes Muster aus einer Zeichenkette. Die korrekte Syntax zur Verwendung dieser Funktion lautet wie folgt.

preg_match($pattern, $inputString, $matches, $flag, $offset);

Die eingebaute Funktion preg_match() hat fünf Parameter. Die Details der Parameter lauten wie folgt

Parameter Beschreibung
$pattern obligatorisch Es ist das Muster, das wir in der angegebenen Zeichenkette prüfen wollen.
$inputString obligatorisch Es ist die Zeichenkette, nach der wir das gegebene Muster suchen wollen.
$matches optional Wenn dieser Parameter angegeben wird, dann speichert die Funktion das Ergebnis des Abgleichs in ihm.
$flags optional Dieser Parameter hat zwei Optionen: PREG_OFFSET_CAPTURE und PREG_UNMATCHED_AS_NULL. Sie können seine Beschreibung hier lesen.
$offset optional Er teilt der Funktion mit, wo sie mit dem Abgleich beginnen soll. Normalerweise beginnt die Suche am Anfang.

Diese Funktion gibt eine boolesche Variable zurück. Sie gibt true zurück, wenn das angegebene Muster existiert. Nachdem wir die Zahlen extrahiert haben, werden wir sie im gewünschten Format ausgeben.

Das folgende Programm zeigt, wie wir die PHP-Funktion preg_match() zur Formatierung von Telefonnummern verwenden können.

<?php 
$number = '+12333509234';
echo("The original number is $number.\n");
if(  preg_match( '/^\+\d(\d{3})(\d{3})(\d{4})$/', $number,  $matches ) )
{
    $result = $matches[1] . '-' .$matches[2] . '-' . $matches[3];
}
echo("The formatted number is $result.");
?> 

Wir haben das Muster /^\+\d(\d{3})(\d{3})(\d{4})$/ verwendet, um die Nummern aus dem String zu extrahieren. Die Erklärung dieses Musters ist wie folgt.

  • ^ ist das Symbol, das auf den Anfang der Zeichenkette passt.
  • \+ passt auf das + in der Zeichenkette. + ist ein spezielles Zeichen in PHP, das auf ein oder mehrere Male des vorhergehenden Musters passt. Daher müssen wir \ vor + hinzufügen, um dieses Sonderzeichen zu umgehen.
  • \d wird verwendet, um eine einstellige Zahl von 0-9 zu finden. \d{3} bedeutet, dass es mit drei aufeinanderfolgenden Zahlen übereinstimmen wird.

Ausgabe:

The original number is +12333509234.
The formatted number is 233-350-9234. 

Verwendung von die Funktion sprintf() zur Formatierung von Telefonnummern in PHP

Wir können auch die Funktion sprintf() verwenden, um Telefonnummern in PHP zu formatieren. Diese Funktion bietet verschiedene Formatierungsmuster, um Strings zu formatieren. Wir werden die Zahlen mit der Funktion substr() in mehrere Strings extrahieren. Danach werden wir diese Strings mit der Funktion sprintf() im gewünschten Format kombinieren. Die korrekte Syntax zur Verwendung dieser Funktion lautet wie folgt.

sprintf($formatString, $string1, $string2, ..., $stringN)

Die Funktion sprintf() nimmt N+1 Parameter an. Die Parameter sind im Detail wie folgt

Parameter Beschreibung
$formatString obligatorisch Es ist das Format, das auf die angegebene(n) Zeichenkette(n) angewendet werden soll.
$string1, $string2, …, $stringN obligatorisch Es handelt sich um die Zeichenkette, die formatiert werden soll. Mindestens eine Zeichenkette ist obligatorisch.

Die Funktion gibt die formatierte Zeichenkette zurück. Wir werden das Format %s-%s-%s verwenden, um die numerischen Zeichenketten miteinander zu kombinieren. Das Programm, das zwei Zeichenketten miteinander kombiniert, sieht wie folgt aus:

<?php 
$number = '+12333509234';
echo("The original number is $number.\n");
$result = sprintf("%s-%s-%s",
              substr($number, 2, 3),
              substr($number, 5, 3),
              substr($number, 8));
echo("The formatted number is $result.");
?> 

Ausgabe:

The original number is +12333509234.
The formatted number is 233-350-9234.

Verwandter Artikel - PHP Regex