In der Webentwicklung ist das Dropdown-Menü eine gängige Art der Steuerung. In einigen Fällen müssen wir alle Dropdown-Menüelemente in HTML mit regulären PHP-Ausdrücken abgleichen, beispielsweise im Fall von Crawlern oder Daten-Scraping. In diesem Artikel erfahren Sie, wie Sie reguläre PHP-Ausdrücke verwenden, um alle Dropdown-Menüs in HTML abzugleichen.
<select> <option value="1">选项1</option> <option value="2">选项2</option> <option value="3">选项3</option> </select>
preg_match_all(pattern, subject, matches);
wobei „Muster“ einen regulären Ausdruck darstellt, „Betreff“ die zu durchsuchende Zeichenfolge und „Matches“ das Array der übereinstimmenden Ergebnisse ist.
/<select[^>]*>(.*?)</select>/s
Dieser reguläre Ausdruck kann mit allen ausgewählten Tags übereinstimmen, einschließlich der Options-Tags. Darunter steht die Wortgrenze, 1 steht für null oder mehr Zeichen außer „>“, (.?) steht für alles im nicht gierigen Modus und s steht für das Zulassen von „.“ Alle Charaktere inkl.
Das Folgende ist ein vollständiger Beispielcode:
$html = ' '; preg_match_all('/<select[^>]*>(.*?)</select>/s', $html, $matches); print_r($matches);
Führen Sie den obigen Code aus und geben Sie die folgenden Ergebnisse aus:
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> ) ) )
Das Ergebnisarray enthält zwei Elemente, die den HTML-Codes der beiden Dropdown-Menüs entsprechen. Wenn auf der Seite weitere Dropdown-Menüs vorhanden sind, werden diese ebenfalls abgeglichen und im Ergebnisarray gespeichert.
foreach ($matches[1] as $select) { preg_match_all('/<option value="(.*?)">(.*?)</option>/s', $select, $options); print_r($options); }
Die Ausgabe lautet wie folgt:
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 ) )
Beachten Sie, dass das „(.*?)“ im obigen regulären Ausdruck mit dem Wert und Text des übereinstimmt Option bzw. Wenn Sie andere Attribute extrahieren müssen, z. B. den Stil oder die ID der Option, können Sie dem regulären Ausdruck auch das entsprechende Muster hinzufügen.
Das obige ist der detaillierte Inhalt vonRegulärer PHP-Ausdruck: So passen Sie alle Dropdown-Menüs in HTML an. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!