ホームページ >バックエンド開発 >PHPチュートリアル >PHP 正規表現: HTML 内のすべてのメタタグと一致する方法
Web 開発において、メタ タグは非常に重要な要素であり、Web ページのタイトル、Web ページの説明、キーワードなど、Web ページのコンテンツに関する追加情報を提供します。 HTML ページを処理するときは、フロントエンド コードのメタ タグを照合するために正規表現を使用する必要がある場合があります。PHP 正規表現を使用して HTML ページ内のすべてのメタ タグを照合する方法を紹介します。
まず、HTML ページにおけるメタ タグの従来の記述方法を理解する必要がありますが、一般的な形式は次のとおりです:
<meta charset="UTF-8"> <meta name="description" content="这里是网页的描述"> <meta name="keywords" content="这里是网页的关键词"> <title>这里是网页标题</title>
このテンプレートによれば、正規表現を使用してこれらのメタタグと一致します。まず、HTML ページのソース コードを取得し、次に示すように、PHP の preg_match_all() 関数を使用してその中のメタ タグを照合する必要があります。
$html = file_get_contents("http://www.example.com"); preg_match_all('/<meta.*?>/i', $html, $matches); print_r($matches);
上記のコードでは、最初に file_get_contents を使用します。 () 関数で取得 HTML ページのソース コードを取得し、preg_match_all() 関数を使用してソース コード内のすべてのメタ タグを照合し、照合結果を $matches 変数に保存します。このうち、/6a04ca81eba32ac506955b5caa466824/i はメタ タグの一致に使用される正規表現で、 が一致するまで貪欲な一致は行われません。つまり、一致するときに大文字と小文字が無視されます。
上記のコードの実行結果は次のようになります。
Array ( [0] => Array ( [0] => <meta charset="UTF-8"> [1] => <meta name="description" content="这里是网页的描述"> [2] => <meta name="keywords" content="这里是网页的关键词"> ) )
preg_match_all() 関数によって、HTML ページ内のすべてのメタ タグが正常に一致し、結果は $matches 配列に保存されます。
同時に、文字セット、名前、コンテンツなどのメタ タグ内の特定の属性値と一致する必要がある場合は、対応する一致ルールを上記の正規表現に追加することもできます。以下に示すように:
$html = file_get_contents("http://www.example.com"); preg_match_all('/<metas+.*?charset="(S+).*?>/i', $html, $matches); print_r($matches);
上記のコードでは、タグ属性間のスペースに一致する s の一致ルールを追加し、正規表現に charset="(S )" の一致ルールを追加しました。 use メタ タグ内の charset 属性とその属性値を照合します。ここで、S は、スペースを除く文字セット内の任意の文字と一致することを意味し、その文字セットが少なくとも 1 回出現することを示します。上記のコードを実行すると、出力は次のようになります。
Array ( [0] => Array ( [0] => <meta charset="UTF-8"> ) [1] => Array ( [0] => UTF-8 ) )
上記の一致結果から、ページ内の charset 属性とその属性値が正常に一致していることがわかります。
つまり、PHP の正規表現を使用すると、メタ タグを含む HTML ページ内のさまざまな要素を柔軟に照合できます。正規表現は便利ですが、一部の複雑なネストされたタグを処理できないなどの制限もあるので、正規表現を使用する場合は注意が必要です。
以上がPHP 正規表現: HTML 内のすべてのメタタグと一致する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。