Il n'y a pas de moyen facile de valider et de formater les numéros de téléphone en PHP, j'ai donc écrit une bibliothèque simple qui n'a pas de dépendances, mais qui peut quand même gérer ce rôle.
Le but est de vérifier le format d'un numéro de téléphone, ou de le convertir en une forme canonique de base (qui est toujours valide).
Simplement par compositeur :
$ composer require baraja-core/phone-number
Ou téléchargez le paquet Download on GitHub.
Le principe de cet outil est basé sur le formatage et la validation des numéros de téléphone provenant de l'utilisateur, ou de sources sur lesquelles vous n'avez aucun contrôle.
L'utilisation la plus courante consiste à corriger le formatage des numéros de téléphone :
$original = '+420 777123456';$formatted = \Baraja\PhoneNumber\PhoneNumberFormatter::fix($original);echo $original . '<br>';echo $formatted;
La fonction corrige le formatage des nombres et renvoie la chaîne +420 777 123 456
.
Si aucun préfixe n'est spécifié par l'utilisateur, le préfixe +420
est supposé. Vous pouvez modifier la préférence par défaut à l'aide du deuxième paramètre :
// retours : +421 777 123 456\Baraja\PhoneNumber\PhoneNumberFormatter::fix('+420 777123456', 421);
Le code du téléphone n'est écrasé que si l'utilisateur ne le saisit pas et s'il n'est pas détecté automatiquement.
La chaîne d'entrée peut ressembler à (presque) n'importe quoi. L'algorithme intégré peut supprimer automatiquement les caractères non valides (par exemple, certains utilisateurs écrivent une note à côté d'un numéro de téléphone qui sera supprimée automatiquement). Vous n'avez donc pas à vous soucier du formatage de l'entrée, mais la sortie sera toujours cohérente.
La sortie a toujours le même aspect (elle est normalisée au format canonique).
Le format général est le suivant :
+420 777 123 456| \_________/Prefix |National number
Si vous soumettez une entrée non valide (ou une entrée qui ne peut être corrigée automatiquement), une exception sera levée.
Si un nombre ne peut pas être normalisé en toute sécurité à une forme de base, ou s'il n'existe pas, lancez une exception ``InvalidArgumentException`'.
Si vous souhaitez convertir l'exception en booléen, utilisez le validateur d'actif intégré :
\Baraja\PhoneNumber\PhoneNumberValidator::isValid('123'); // faux\Baraja\PhoneNumber\PhoneNumberValidator::isValid('777123456'); // vrai\Baraja\PhoneNumber\PhoneNumberValidator::isValid('+420 777123456'); // vrai\Baraja\PhoneNumber\PhoneNumberValidator::isValid('+420 777 123 456'); // vrai\Baraja\PhoneNumber\PhoneNumberValidator::isValid('+420 77 712 34 56'); // vrai
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:
Články píše Jan Barášek © 2009-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | fr