Formatta i numeri di telefono in PHP
-
Usa la funzione
preg_match()
per formattare i numeri di telefono in PHP -
Usa la funzione
sprintf()
per formattare i numeri di telefono in PHP
In questo articolo, parleremo di diversi metodi per formattare i numeri di telefono utilizzando PHP. Formatteremo il numero di telefono da +13335092344
a 333-509-2344
.
Usa la funzione preg_match()
per formattare i numeri di telefono in PHP
Possiamo usare la funzione incorporata preg_match()
per formattare i numeri di telefono. Questa funzione cerca un modello specificato da una stringa. La sintassi corretta per utilizzare questa funzione è la seguente.
preg_match($pattern, $inputString, $matches, $flag, $offset);
La funzione incorporata preg_match()
ha cinque parametri. I dettagli dei suoi parametri sono i seguenti
Parametri | Descrizione | |
---|---|---|
$pattern |
obbligatorio | È il modello che vogliamo controllare nella stringa data. |
$inputString |
obbligatorio | È la stringa per la quale vogliamo cercare il modello dato. |
$matches |
opzionale | Se viene fornito questo parametro, la funzione memorizza al suo interno il risultato del processo di corrispondenza. |
$flags |
opzionale | Questo parametro ha due opzioni: PREG_OFFSET_CAPTURE e PREG_UNMATCHED_AS_NULL . Puoi leggere la sua descrizione qui. |
$offset |
opzionale | Indica la funzione di dove avviare il processo di corrispondenza. Di solito, la ricerca inizia dall’inizio. |
Questa funzione restituisce una variabile booleana. Restituisce vero se il modello dato esiste. Dopo aver estratto i numeri, li stamperemo nel formato richiesto.
Il programma sotto mostra il modo in cui possiamo usare la funzione preg_match()
di PHP per formattare i numeri di telefono.
<?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.");
?>
Abbiamo usato il pattern /^\+\d(\d{3})(\d{3})(\d{4})$/
per estrarre i numeri dalla stringa. La spiegazione di questo modello è la seguente.
^
è il simbolo che corrisponde all’inizio della stringa.\+
corrisponde al+
nella stringa.+
È un carattere speciale in PHP che corrisponde una o più volte al modello precedente. Pertanto, dobbiamo aggiungere\
prima di+
per sfuggire a questo carattere speciale.\d
viene utilizzato per abbinare il numero a una cifra da 0 a 9.\d{3}
significa che corrisponderà a tre numeri consecutivi.
Produzione:
The original number is +12333509234.
The formatted number is 233-350-9234.
Usa la funzione sprintf()
per formattare i numeri di telefono in PHP
Possiamo anche usare la funzione sprintf()
per formattare i numeri di telefono in PHP. Questa funzione fornisce diversi modelli di formattazione per formattare le stringhe. Estrarremo i numeri usando la funzione substr()
in più stringhe. Dopodiché, combineremo queste stringhe nel formato richiesto usando la funzione sprintf()
. La sintassi corretta per utilizzare questa funzione è la seguente.
sprintf($formatString, $string1, $string2, ..., $stringN)
La funzione sprintf()
accetta N+1 parametri. Il dettaglio dei suoi parametri è il seguente
Parametri | Descrizione | |
---|---|---|
$formatString |
obbligatorio | È il formato che verrà applicato alla stringa o alle stringhe date. |
$string1 , $string2 , $stringN |
obbligatorio | È la stringa che vogliamo formattare. Almeno una stringa è obbligatoria. |
La funzione restituisce la stringa formattata. Useremo il formato %s-%s-%s
per combinare le stringhe numeriche. Il programma che combina due stringhe è il seguente.
<?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.");
?>
Produzione:
The original number is +12333509234.
The formatted number is 233-350-9234.