Nettoyer et afficher un numéro de téléphone en PHP
Voici une fonction assez simplement permettant dans un premier temps de vérifier un numéro de téléphone (après avoir retiré tous les caractères non alphanumériques) puis de formater un affichage.
Vous pouvez l'utiliser avant d'entrer le numéro dans la base de données (après le traitement par formulaire) ou par exemple afficher le numéro sur votre site sous la forme "00-00-00-00-00". (Séparateur modifiable)
En paramètres de la fonction le numéro de téléphone et optionnel le séparateur qui sera affiché tous les deux caractères numériques.
<?php # Nettoyage/affichage d'un numéro de téléphone function clean_display_phone($nbr, $sep=false) { $nbr = ereg_replace('[^0-9]', '', $nbr); if(strlen($nbr) != 10) return false; else { if($sep) { for($i=0;$i<5;$i++) $nbr_array[] = substr($nbr, $i*2, 2); $nbr = implode($sep, $nbr_array); return $nbr; } else return $nbr; } }
Voici quelques exemples d'utilisation.
<?php // Numéros de téléphone suite à un formulaire par exemple $num_tel_bon = '10.45.86.12.34'; $num_tel_mauvais = '084230246875123'; # Test Validité if(clean_display_phone($num_tel_bon)) // Affiche "Ok" echo 'Ok'; if(clean_display_phone($num_tel_mauvais)) // Pas de retour echo 'Ok'; # Affichage echo clean_display_phone($num_tel_bon); // Affiche "1045861234" echo clean_display_phone($num_tel_bon, '-'); // Affiche "10-45-86-12-34"
N'hésitez pas à me faire un retour ou encore me proposer des améliorations. 