Web 開発では、ドロップダウン メニューが一般的なタイプのコントロールです。クローラーやデータ スクレイピングの場合など、場合によっては、HTML 内のすべてのドロップダウン メニュー要素を PHP 正規表現と照合する必要があります。この記事では、PHP 正規表現を使用して HTML のすべてのドロップダウン メニューと一致する方法を説明します。
<select> <option value="1">选项1</option> <option value="2">选项2</option> <option value="3">选项3</option> </select>
preg_match_all(pattern, subject, matches);
このうち、pattern は正規表現、subject は検索する文字列、matches は一致した結果の配列を表します。
/<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 つの要素が含まれています。ドロップダウン メニューのコード。ページ上にさらにドロップダウン メニューがある場合、それらも照合され、結果配列に保存されます。
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 など、他の属性を抽出する必要がある場合は、対応するパターンを正規表現に追加することもできます。
以上がPHP 正規表現: HTML 内のすべてのドロップダウン メニューを照合する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。