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

tallest17 Messages postés 29 Statut Membre -  
tallest17 Messages postés 29 Statut Membre -
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

  1. Utilisateur anonyme
     
    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
    1. tallest17 Messages postés 29 Statut Membre
       
      Merci pour votre intervention
      Mais comment puis je récupérer l'indicatif puisque sa longueur varie d'un pays a un autre.
      0
    2. Pitet Messages postés 2845 Statut Membre 530
       
      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
    3. tallest17 Messages postés 29 Statut Membre > Pitet Messages postés 2845 Statut Membre
       
      Bonjour,
      Merci beaucoup
      ça marche mais je veux que ma fonction me retourne le code du pays.
      MERCI
      0
    4. Pitet Messages postés 2845 Statut Membre 530 > tallest17 Messages postés 29 Statut Membre
       
      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