Tuto : extraire tous les emails d'un texte en PHP

email extractor

Pour extraire toutes les adresses e-mails d'un texte en PHP vous dévier définissez une expression régulière qui correspond à un e-mail valide. Voici un exemple :

$regex = '/\b[A-Z0-9._%+-]+@[A-Z0-9.-]+.[A-Z]{2,}\b/i';

Utilisez la fonction preg_match_all() pour extraire tous les e-mails du texte en utilisant l'expression régulière définie ci-dessus.

Voici un exemple :

preg_match_all($regex, $text, $matches);

Vous pouvez maintenant accéder à tous les e-mails extraits en utilisant la variable $matches. Voici un exemple de comment afficher tous les e-mails extraits :

foreach ($matches[0] as $email) {
echo $email . "<br>";
}

Il est important de noter que cette solution ne garantit pas que tous les e-mails extraits sont valides, mais elle vous donnera une liste de tous les e-mails qui correspondent à la structure de l'expression régulière définie. Vous devrez peut-être effectuer d'autres vérifications pour vous assurer que les e-mails sont valides avant de les utiliser.

Voici comment vous pourriez utiliser cette solution dans le contexte d'un script PHP complet :

<?php

$text = "Voici quelques exemples d'e-mails : This email address is being protected from spambots. You need JavaScript enabled to view it., This email address is being protected from spambots. You need JavaScript enabled to view it., info@example.com. Vous pouvez également nous contacter à l'adresse contact@example.com.";

// Définissez l'expression régulière pour extraire les e-mails
$regex = '/\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}\b/i';

// Extraire tous les e-mails du texte
preg_match_all($regex, $text, $matches);

// Afficher tous les e-mails extraits
echo "E-mails extraits : <br>";
foreach ($matches[0] as $email) {
echo $email . "<br>";

}

?>

Ce script affichera les e-mails suivants :

E-mails extraits :
This email address is being protected from spambots. You need JavaScript enabled to view it.
This email address is being protected from spambots. You need JavaScript enabled to view it.
This email address is being protected from spambots. You need JavaScript enabled to view it.
This email address is being protected from spambots. You need JavaScript enabled to view it.