ホームページ > バックエンド開発 > PHPチュートリアル > PHP 正規表現: HTML のすべての見出しを一致させる方法

PHP 正規表現: HTML のすべての見出しを一致させる方法

WBOY
リリース: 2023-06-22 22:20:01
オリジナル
1229 人が閲覧しました

正規表現を使用して HTML タイトルを照合することは、PHP では一般的な操作です。 Web ページのタイトルは通常、ページの一般的な内容を表示するために使用され、ユーザーが理解しやすく、閲覧しやすくなります。場合によっては、後続の処理のために HTML からすべてのタイトルを抽出する必要があります。

この記事では、PHP 正規表現を使用して、HTML 内のすべてのタイトルを迅速かつ効果的に抽出する方法を紹介します。

1. HTML タイトルの分類

HTML ページにはさまざまな種類のタイトルがあり、次のタグを使用して定義できます:

  1. h1 ~ h6タグ: タイトルのレベルを示すために使用され、h1 が最高、h6 が最低です;
  2. title タグ: Web ページのタイトルを定義するために使用され、head タグ内にあります;
  3. meta タグ: Web ページ データのメタを定義するために使用され、検索エンジンの最適化でよく使用されます。

2. PHP 正規表現

正規表現は、テキスト文字列を効果的に処理できる強力な検索および置換ツールです。 PHP では、preg_match()、preg_match_all()、preg_replace() およびその他の関数を使用して正規表現マッチングを実装できます。

一般的に使用される正規表現構文の一部を次に示します:

  1. d: 数字と一致する;
  2. w: 英数字とアンダースコアと一致する;
  3. s: 空白文字と一致します;
  4. ^: 文字列の先頭と一致します;
  5. $: 文字列の末尾と一致します;
  6. *: 前の文字列と一致します任意の数の文字;
  7. : 少なくとも 1 つの前の文字と一致します;
  8. ?: 0 個または 1 つの前の文字と一致します;
  9. []: 一連の文字と一致します;
  10. (): 後続の操作のために式をグループ化します。

3. HTML 内のすべてのタイトルと一致する

以下では、PHP 正規表現を使用して HTML ページ内のさまざまな種類のタイトルを一致させる方法を紹介します。

  1. h1~h6タグ

まず、h1~h6タグのタイトルを一致させる方法を見てみましょう。次の HTML コードがあるとします。

<!DOCTYPE html>
<html>
<head>
    <title>HTML 标题示例</title>
</head>
<body>
    <h1>这是一级标题</h1>
    <h2>这是二级标题</h2>
    <h3>这是三级标题</h3>
    <h4>这是四级标题</h4>
    <h5>这是五级标题</h5>
    <h6>这是六级标题</h6>
</body>
</html>
ログイン後にコピー

preg_match_all() 関数と正規表現を使用できます/<h[1-6]>(.*?)</h[ 1-6]>/、すべてのタイトルを抽出するには:

$html = file_get_contents('example.html');
preg_match_all('/<h[1-6]>(.*?)</h[1-6]>/', $html, $matches);
print_r($matches[0]);
ログイン後にコピー

上記のコードでは、file_get_contents() 関数を使用して HTML ファイルのコンテンツを読み取り、次に preg_match_all() を使用します。関数と正規表現 h1 ~ h6 のタイトルに一致する数式 /<h[1-6]>(.*?)</h[1-6]>/。正規表現の

/<h[1-6]>(.*?)</h[1-6]>/ は、h1 ~ 文字列と一致することを意味しますh6 タグ内で、(.*?) は非貪欲モードを表し、可能な限り少数の文字と一致します。

出力結果は次のとおりです。

Array
(
    [0] => <h1>这是一级标题</h1>
    [1] => <h2>这是二级标题</h2>
    [2] => <h3>这是三级标题</h3>
    [3] => <h4>这是四级标题</h4>
    [4] => <h5>这是五级标题</h5>
    [5] => <h6>这是六级标题</h6>
)
ログイン後にコピー

ご覧のとおり、HTML ページ内の h1 ~ h6 のすべてのタイトルが正常に一致しました。

  1. title タグ

次に、title タグで Web ページのタイトルを一致させる方法を見てみましょう。次の HTML コードがあるとします。

<!DOCTYPE html>
<html>
<head>
    <title>HTML 标题示例</title>
</head>
<body>
    <h1>这是一级标题</h1>
    <p>段落内容</p>
    <h2>这是二级标题</h2>
    <p>段落内容</p>
</body>
</html>
ログイン後にコピー

preg_match() 関数と正規表現 /<title>(.*?)</title>/ を使用できます。 Web ページのタイトルを抽出するには:

$html = file_get_contents('example.html');
preg_match('/<title>(.*?)</title>/', $html, $matches);
echo $matches[1];
ログイン後にコピー

上記のコードでは、file_get_contents() 関数を使用して HTML ファイルのコンテンツを読み取り、preg_match() 関数と正規表現を使用します/<title&gt ;(.* ?)</title>/ は、title タグと一致します。正規表現の

/<title>(.*?)</title>/ は、title タグ内の文字列と一致することを意味します。ここで、(.* ?) は、非貪欲モードを示し、可能な限り少数の文字と一致します。

出力結果は次のとおりです。

HTML 标题示例
ログイン後にコピー

ご覧のとおり、HTML ページの Web ページ タイトルと一致することができました。

  1. メタ タグ

最後に、メタ タグ内のメタデータを照合する方法を見てみましょう。次の HTML コードがあるとします。

<!DOCTYPE html>
<html>
<head>
    <title>HTML 标题示例</title>
    <meta charset="utf-8">
    <meta name="keywords" content="HTML,标题,元数据">
    <meta name="description" content="HTML 标题示例 - 一个简单的 HTML 页面,包含多种类型的标题和元数据。">
</head>
<body>
    <h1>这是一级标题</h1>
    <p>段落内容</p>
    <h2>这是二级标题</h2>
    <p>段落内容</p>
</body>
</html>
ログイン後にコピー

preg_match_all() 関数と正規表現を使用できます/<metas ([^>] s)*names*=s*([' "]?)keywords ([^>] s)*>/、キーワードのメタデータを抽出します:

$html = file_get_contents('example.html');
preg_match_all('/<metas+([^>]+s)*names*=s*(['"]?)keywords([^>]+s)*>/', $html, $matches);
print_r($matches[0]);
ログイン後にコピー

上記のコードでは、file_get_contents() 関数を使用して HTML ファイルを読み取ります。コンテンツを検索し、preg_match_all() 関数と正規表現 /<metas ([^>] s)*names*=s*(['"]?)keywords ([^>] s) を使用します。 *>/ キーワードのメタデータと一致します。

/<metas ([^>] s)*names*=s*(['"]?)keywords ([^>] s)* 正規表現 >/ は、name 属性がキーワードであるメタ タグ内の文字列と一致することを意味します。

出力結果は次のとおりです:

Array
(
    [0] => <meta name="keywords" content="HTML,标题,元数据">
)
ログイン後にコピー

ご覧のとおり、キーワード メタデータとの一致に成功しました。

4. 概要

この記事では、PHP 正規表現を使用して、HTML ページ内のさまざまなタイプのタイトルを照合する方法を紹介します。 ) を正規表現の構文とルールと組み合わせることで、後続の処理と分析のために HTML コード内の関連情報を簡単に抽出できます。

以上がPHP 正規表現: HTML のすべての見出しを一致させる方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート