Qu'il s'agisse d'une page web ou d'un email, les liens email sont l'un de nos éléments communs. Dans une page Web, nous souhaiterons peut-être faire correspondre et trouver tous les liens de courrier électronique en même temps. À ce stade, l'utilisation des expressions régulières de PHP peut facilement atteindre cet objectif.
PHP est un langage de script serveur largement utilisé qui peut être utilisé pour des tâches telles que le traitement de formulaires HTML, la création de pages Web dynamiques et l'interaction avec des bases de données. Il existe de nombreuses fonctions intégrées à PHP qui peuvent facilement manipuler des chaînes et des expressions régulières. Parmi elles, la fonction preg_match_all() est utilisée pour faire correspondre toutes les sous-chaînes qui correspondent à l'expression régulière donnée dans un morceau de texte.
Ensuite, nous expliquerons comment utiliser la fonction preg_match_all() de PHP pour faire correspondre tous les liens de courrier électronique en HTML.
Tout d'abord, nous devons créer une expression régulière pour correspondre à tous les liens de courrier électronique. Ici, nous pouvons envisager d’utiliser une expression régulière relativement simple pour atteindre l’objectif. Par exemple, nous pouvons utiliser l'expression régulière suivante pour correspondre à un format de lien de courrier électronique standard :
[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Z]{2,}
Cette expression régulière peut commencer par une lettre ou un chiffre, suivi de certains caractères facultatifs (tels que le point, le trait de soulignement, le signe plus, le chiffre moins). , etc.), suivi d'un symbole @ et d'un nom de domaine de messagerie. Parmi eux, le nom de domaine est composé de lettres et de chiffres et peut avoir plusieurs niveaux de nom de domaine, séparés par des points. Enfin, cette expression régulière nécessite également que le nom de domaine de premier niveau du domaine soit composé de deux lettres majuscules ou plus. Nous pouvons enregistrer cette expression régulière dans une variable en PHP, par exemple :
$pattern = '/[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Z]{2,}/';
Ensuite, nous devons lire le contenu d'un fichier HTML et l'enregistrer dans une chaîne dans des variables. En PHP, nous pouvons utiliser la fonction file_get_contents() pour lire le contenu de n’importe quel fichier réseau ou local. Par exemple, nous pouvons lire le contenu d'un fichier local avec le code suivant :
$html = file_get_contents('test.html');
Maintenant, nous avons une expression régulière stockée dans la variable $pattern, et le contenu du fichier HTML stocké dans la variable $html. Ensuite, nous pouvons utiliser la fonction preg_match_all() de PHP pour faire correspondre tous les liens de courrier électronique qui répondent aux critères. Cette fonction doit transmettre trois paramètres : l'expression régulière à faire correspondre, le texte à faire correspondre et un tableau pour enregistrer les résultats correspondants.
Ici, nous pouvons utiliser le code suivant pour atteindre notre objectif :
$matches = array(); preg_match_all($pattern, $html, $matches);
Dans ce code, nous créons un tableau vide $matches pour enregistrer les résultats de la correspondance d'expressions régulières. Ensuite, utilisez la fonction preg_match_all() pour faire correspondre tous les liens de messagerie éligibles et enregistrez les résultats dans la variable $matches.
Enfin, nous pouvons parcourir la variable $matches et afficher tous les liens de courrier électronique correspondants. Par exemple, nous pouvons utiliser le code suivant pour afficher les résultats de la correspondance :
foreach ($matches[0] as $match) { echo $match . "<br/>"; }
Dans ce code, nous parcourons le premier élément de la variable $matches (c'est-à-dire le tableau qui contient tous les résultats correspondants) et ajoutons chacun match Les résultats sont affichés à l'écran.
Le code complet est le suivant :
$pattern = '/[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Z]{2,}/'; $html = file_get_contents('test.html'); $matches = array(); preg_match_all($pattern, $html, $matches); foreach ($matches[0] as $match) { echo $match . "<br/>"; }
Le code ci-dessus peut correspondre à tous les liens de courrier électronique d'un fichier nommé test.html et afficher les résultats à l'écran.
Résumé :
Pour faire correspondre tous les liens de messagerie en PHP, vous pouvez utiliser la fonction preg_match_all() et les expressions régulières. Tout d’abord, nous devons créer une expression régulière correspondant à un format de lien de courrier électronique standard. Ensuite, nous devons utiliser la fonction file_get_contents() pour lire le contenu HTML à partir d'un fichier local ou d'un fichier réseau et enregistrer le contenu dans une variable de chaîne. Ensuite, nous pouvons utiliser la fonction preg_match_all() pour faire correspondre tous les liens de messagerie éligibles et enregistrer les résultats dans un tableau. Enfin, nous pouvons parcourir chaque correspondance du tableau et l’imprimer à l’écran.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!