Pays de provenance a partir du numéro de téléphone saisi

Fermé
tallest17 Messages postés 27 Date d'inscription jeudi 10 novembre 2016 Statut Membre Dernière intervention 22 février 2019 - 31 oct. 2017 à 11:31
tallest17 Messages postés 27 Date d'inscription jeudi 10 novembre 2016 Statut Membre Dernière intervention 22 février 2019 - 6 nov. 2017 à 10:31
Bonjour,

Svp
je veux connaitre le pays auquel correspond un numéro de téléphone saisi dans un champ sur un formulaire.
l'indicatif et le numéro sont dans le même champ.
Merci

1 réponse

Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 929
31 oct. 2017 à 13:31
Bonjour
Je ne fais pas de php, mais le principe est simple, tu extrais l’indicatif et tu regardes à quel pays ça correspond.
Tu peux faire avec un switch, si tu te limites à quelques pays, tu peux aussi te faire une énumération ou chaque pays à son indicatif comme valeur, sinon il te faut une liste lien les 2 infos (tableau à 2 dimensions par exemple.)
0
tallest17 Messages postés 27 Date d'inscription jeudi 10 novembre 2016 Statut Membre Dernière intervention 22 février 2019
31 oct. 2017 à 14:46
Merci pour votre intervention
Mais comment puis je récupérer l'indicatif puisque sa longueur varie d'un pays a un autre.
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
31 oct. 2017 à 15:20
L'indicatif varie de 2 à 4 chiffres. Tu peux donc commencer par vérifier si les 2 premiers numéro du numéro correspond à un des code à 2 chiffres, sinon vérifier si les 3 premiers caractères correspondent à un code 3 chiffres, etc...

$countryCodes = array(
    'FR' => '33',
    'GB' => '44',
    'MZ' => '258',
    'NP' => '977',
    'VC' => '1784'
);

$testPhone1 = '330102030405';
// $testPhone1 = '9770102030405';

foreach ($countryCodes as $code) {
    if (substr($testPhone1, 0, strlen($code)) === $code) {
        echo $code;
    }
}
0
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 929
31 oct. 2017 à 18:30
Tu peux corréler ça avec le nombre de chiffres qui suivent
https://fr.wikipedia.org/wiki/Numéro_de_téléphone
0
tallest17 Messages postés 27 Date d'inscription jeudi 10 novembre 2016 Statut Membre Dernière intervention 22 février 2019 > Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022
2 nov. 2017 à 12:20
Bonjour,
Merci beaucoup
ça marche mais je veux que ma fonction me retourne le code du pays.
MERCI
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524 > tallest17 Messages postés 27 Date d'inscription jeudi 10 novembre 2016 Statut Membre Dernière intervention 22 février 2019
3 nov. 2017 à 11:01
Pour retourner le code du pays, il suffit d'ajouter les clés du tableau dans le parcours de la boucle :
foreach ($countryCodes as $codePays => $indicatif) {
    if (substr($testPhone1, 0, strlen($indicatif)) === $indicatif) {
        echo $codePays;
    }
}
0