ホームページ  >  記事  >  バックエンド開発  >  PHP 正規表現: HTML 内のすべての電子メール リンクを照合する方法

PHP 正規表現: HTML 内のすべての電子メール リンクを照合する方法

WBOY
WBOYオリジナル
2023-06-22 10:49:54851ブラウズ

Web ページであっても電子メールであっても、電子メールのリンクは共通の要素の 1 つです。 Web ページでは、すべての電子メール リンクを一度に照合して検索したい場合があります。この時点で、PHP の正規表現を使用すると、この目標を簡単に達成できます。

PHP は、HTML フォームの処理、動的な Web ページの作成、データベースとの対話などのタスクに使用できる、広く使用されているサーバー スクリプト言語です。 PHP には、文字列や正規表現を簡単に操作できる組み込み関数が多数あります。このうち、 preg_match_all() 関数は、テキスト内の指定された正規表現に一致するすべての部分文字列を照合するために使用されます。

次に、PHP の preg_match_all() 関数を使用して、HTML 内のすべての電子メール リンクを照合する方法を説明します。

  1. 正規表現の作成

まず、すべての電子メール リンクに一致する正規表現を作成する必要があります。ここでは、比較的単純な正規表現を使用して目的を達成することを検討します。たとえば、次の正規表現を使用して、標準の電子メール リンク形式と一致させることができます。

[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Z]{2,}

この正規表現は、数字で始まり、その後にいくつかのオプションの文字 (ドット、アンダースコアなど) が続く文字または数字と一致します。 、プラス記号、マイナス記号など)、その後に @ 記号と電子メール ドメイン名が続きます。このうち、ドメイン名は文字と数字で構成され、ドットで区切って複数のドメイン名レベルを持つことができます。最後に、この正規表現では、ドメインのトップレベル ドメイン名が 2 文字以上の大文字であることも必要です。この正規表現を PHP の変数に保存できます。たとえば、次のようになります。

$pattern = '/[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Z]{2,}/';
  1. HTML ファイルのコンテンツのロード

次に、HTML 読み取りファイルからコンテンツをロードする必要があります。ファイルからコンテンツを取得し、それを文字列変数に保存します。 PHP では、file_get_contents() 関数を使用して、ネットワークまたはローカル ファイルの内容を読み取ることができます。たとえば、次のコードを使用して、ローカル ファイルからコンテンツを読み取ることができます。

$html = file_get_contents('test.html');
  1. 一致する電子メール リンクをすべて一致させる

これで、通常の式は $pattern 変数に格納され、HTML ファイルの内容は $html 変数に格納されます。次に、PHP の preg_match_all() 関数を使用して、条件を満たすすべての電子メール リンクを照合します。この関数は、一致する正規表現、一致するテキスト、一致結果を保存する配列の 3 つのパラメータを渡す必要があります。

ここでは、次のコードを使用して目標を達成できます:

$matches = array(); 
preg_match_all($pattern, $html, $matches);

このコードでは、空の配列 $matches を作成し、正規表現の一致の結果を保存します。次に、preg_match_all() 関数を使用して対象となる電子メール リンクをすべて照合し、結果を $matches 変数に保存します。

  1. 一致結果の出力

最後に、$matches 変数を調べて、一致するすべての電子メール リンクを出力できます。たとえば、次のコードを使用して一致結果を出力できます。

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

このコードでは、$matches 変数の最初の要素 (つまり、すべての一致結果を保持する配列) を反復処理します。各試合の結果を画面に出力します。

完全なコードは次のとおりです。

$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/>";
}

上記のコードは、test.html という名前のファイルのすべての電子メール リンクと一致し、結果を画面に出力します。

概要:

PHP ですべての電子メール リンクを照合するには、preg_match_all() 関数と正規表現を使用できます。まず、標準の電子メール リンク形式に一致する正規表現を作成する必要があります。次に、file_get_contents() 関数を使用して、ローカル ファイルまたはネットワーク ファイルから HTML コンテンツを読み取り、そのコンテンツを文字列変数に保存する必要があります。次に、preg_match_all() 関数を使用して、対象となるすべての電子メール リンクを照合し、結果を配列に保存します。最後に、配列内の各一致を反復処理して、画面に出力できます。

以上がPHP 正規表現: HTML 内のすべての電子メール リンクを照合する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。