ホームページ  >  記事  >  バックエンド開発  >  PHP 正規表現: HTML 内のすべてのドロップダウン メニューを照合する方法

PHP 正規表現: HTML 内のすべてのドロップダウン メニューを照合する方法

PHPz
PHPzオリジナル
2023-06-23 09:40:431284ブラウズ

Web 開発では、ドロップダウン メニューが一般的なタイプのコントロールです。クローラーやデータ スクレイピングの場合など、場合によっては、HTML 内のすべてのドロップダウン メニュー要素を PHP 正規表現と照合する必要があります。この記事では、PHP 正規表現を使用して HTML のすべてのドロップダウン メニューと一致する方法を説明します。

  1. まず、ドロップダウン メニュー コントロールの HTML 構造を理解する必要があります。ドロップダウン メニューは通常、選択タグと任意の数のオプション タグで構成されます。たとえば、単純なドロップダウン メニューの HTML 構造は次のようになります。
<select>
  <option value="1">选项1</option>
  <option value="2">选项2</option>
  <option value="3">选项3</option>
</select>
  1. 次に、PHP の正規表現関数 preg_match_all() を使用して、すべてのドロップダウン メニュー要素と一致します。 。この関数の構文は次のとおりです。
preg_match_all(pattern, subject, matches);

このうち、pattern は正規表現、subject は検索する文字列、matches は一致した結果の配列を表します。

  1. ドロップダウン メニュー コントロールの場合、次の正規表現を使用して HTML 構造と一致させることができます:
/<select[^>]*>(.*?)</select>/s

この正規表現は、以下を含むすべての選択タグと一致します。オプションタグです。このうち、 は単語の境界を表し、 1 は 0 個以上の非 "> " 文字を表し、 (.?) は非貪欲モードを表します, s は、「.」を改行を含むすべての文字に一致させることを意味します。

以下は完全なサンプル コードです:

$html = '
         ';

preg_match_all('/<select[^>]*>(.*?)</select>/s', $html, $matches);

print_r($matches);

上記のコードを実行し、次の結果を出力します:

Array
(
    [0] => Array
        (
            [0] => <select>
            <option value="1">选项1</option>
            <option value="2">选项2</option>
            <option value="3">选项3</option>
         </select>
            [1] => <select>
            <option value="4">选项4</option>
            <option value="5">选项5</option>
            <option value="6">选项6</option>
         </select>
        )

    [1] => Array
        (
            [0] => 
            <option value="1">选项1</option>
            <option value="2">选项2</option>
            <option value="3">选项3</option>
         )
            [1] => 
            <option value="4">选项4</option>
            <option value="5">选项5</option>
            <option value="6">选项6</option>
         )
        )

)

結果の配列には、2 つの HTML に対応する 2 つの要素が含まれています。ドロップダウン メニューのコード。ページ上にさらにドロップダウン メニューがある場合、それらも照合され、結果配列に保存されます。

  1. 実際のアプリケーションでは、ドロップダウン メニューの各オプションの値とテキストを抽出するために正規表現を使用する必要がある場合もあります。たとえば、次のコードは結果配列からすべてのオプションを抽出できます:
foreach ($matches[1] as $select) {
    preg_match_all('/<option value="(.*?)">(.*?)</option>/s', $select, $options);
    print_r($options);
}

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

Array
(
    [0] => Array
        (
            [0] => <option value="1">选项1</option>
            [1] => <option value="2">选项2</option>
            [2] => <option value="3">选项3</option>
        )

    [1] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )

    [2] => Array
        (
            [0] => 选项1
            [1] => 选项2
            [2] => 选项3
        )

)

「(.*? )」が一致することに注意してください。それぞれオプションの値とテキスト。オプションのスタイルや ID など、他の属性を抽出する必要がある場合は、対応するパターンを正規表現に追加することもできます。


  1. >

以上がPHP 正規表現: HTML 内のすべてのドロップダウン メニューを照合する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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