article(s) dans votre panier VOIR

Tuto PHP/MySQL | Exercice sur le filtrage de tableaux

  • Vidéo 50 sur 158
  • 4h43 de formation
  • 158 leçons

Un contenu flash devrait s'afficher ici. Votre navigateur ne comporte pas de plugin flash, ou il ne s'est pas correctement initialisé.

Vous pouvez télécharger le plugin flash depuis le site d'Adobe à l'adresse suivante : http://get.adobe.com/flashplayer/.

Pour accéder à la suite de cette formation, vous devez vous abonner.
previous
summary
resume
next
play
Exercice sur le filtrage de tableaux
00:00 / 03:14
HD
fullscreen
Je m’abonne
à partir de 16,6 € / mois
  • Visionnage en ligne
  • Accès illimité à toutes nos formations
OU
J'achète uniquement
la formation
49,90€
  • Téléchargement + VOD à vie
  • Accès uniquement à cette formation

Sommaire de la formation

Détails de la formation

Définissez une fonction qui filtre les adresses mail afin de n'afficher que les adresses valides.

Les adresses à filtrer se trouvent dans ce tableau numéroté :

$adresses = array("nom.com", "nom@fai.com", "nom@fai", "nom.prenom@fai.com", "nom@fai.fr", "nom@t.fr");

Pour qu'une adresse mail soit considérée comme valide, elle doit respecter les trois conditions suivantes :

Contenir un caractère "@"

Contenir au moins un caractère "."

Comporter au moins trois caractères entre le @ et le dernier point

Pour résoudre ces problèmes, vous aurez besoin des fonctions suivantes :

strpos(chaine, rech) qui retourne la première position de rech dans chaine

strrpos(chaine, rech) qui retourne la dernière position de rech dans chaine

Solution

Faites une pause dans la vidéo pour vous permettre de saisir le code. Poursuivez la vidéo pour voir la solution.

Dans un premier temps, le tableau $adresses est défini.

Dans un deuxième temps, le tableau est filtré avec la fonction array_filter.

Enfin, dans un troisième temps, les données contenues dans le tableau filtré, c'est-à-dire les adresses e-mail valides, sont affichées.

Examinons la fonction filtreEmail.

Le caractère @ est recherché dans la chaîne passée en argument. Si le résultat retourné pat la fonction strpos est nul, le caractère @ n'a pas été trouvé.

La position du dernier point dans la chaîne est alors recherchée avec la fonction strrpos.

Si le caractère @ a été trouvé, si un point décimal a été trouvé et s'il est distant du @ d'au moins trois caractères, l'adresse email est considérée valide. La valeur true est alors retournée. L'adresse email est donc conservée dans le tableau résultat.

Dans le cas contraire, l'adresse email est invalide. Dans ce cas, la valeur false est retournée, ce qui provoque la suppression de l'adresse du tableau résultat.

<?php

  function filtreEmail($data){

    $arobas = strpos($data, "@");

    $dernierPoint = strrpos($data,".");

    if (($arobas!=false) &&

      ($dernierPoint!=false) &&

      ($dernierPoint - $arobas >= 3))

    return true;

    else

    return false;    

  }

 

  $adresses = array("nom.com", "nom@fai.com", "nom@fai", "nom.prenom@fai.com", "nom@fai.fr", "nom@t.fr");

  $adressesValides = array_filter($adresses, "filtreEmail");

  foreach($adressesValides as $element)

    echo $element."<br>";

 

?>