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_CAPTUREePREG_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.
- \dviene 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.