Heim > Backend-Entwicklung > PHP-Tutorial > Regulärer PHP-Ausdruck: So passen Sie alle Dropdown-Menüs in HTML an

Regulärer PHP-Ausdruck: So passen Sie alle Dropdown-Menüs in HTML an

PHPz
Freigeben: 2023-06-23 11:12:02
Original
1305 Leute haben es durchsucht

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.

  1. Zuerst müssen wir die HTML-Struktur des Dropdown-Menü-Steuerelements verstehen. Ein Dropdown-Menü besteht normalerweise aus einem Auswahl-Tag und einer beliebigen Anzahl von Options-Tags. Die HTML-Struktur eines einfachen Dropdown-Menüs sieht beispielsweise so aus:
<select>
  <option value="1">选项1</option>
  <option value="2">选项2</option>
  <option value="3">选项3</option>
</select>
Nach dem Login kopieren
  1. Als nächstes können wir die reguläre Ausdrucksfunktion preg_match_all() von PHP verwenden, um alle Elemente des Dropdown-Menüs abzugleichen. Die Syntax dieser Funktion lautet wie folgt:
preg_match_all(pattern, subject, matches);
Nach dem Login kopieren

wobei „Muster“ einen regulären Ausdruck darstellt, „Betreff“ die zu durchsuchende Zeichenfolge und „Matches“ das Array der übereinstimmenden Ergebnisse ist.

  1. Für das Dropdown-Menü-Steuerelement können wir den folgenden regulären Ausdruck verwenden, um dessen HTML-Struktur anzupassen:
/<select[^>]*>(.*?)</select>/s
Nach dem Login kopieren

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);
Nach dem Login kopieren

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>
         )
        )

)
Nach dem Login kopieren

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.

  1. In praktischen Anwendungen müssen wir möglicherweise auch reguläre Ausdrücke verwenden, um den Wert und Text jeder Option im Dropdown-Menü zu extrahieren. Beispielsweise kann der folgende Code alle Optionen aus dem Ergebnisarray extrahieren:
foreach ($matches[1] as $select) {
    preg_match_all('/<option value="(.*?)">(.*?)</option>/s', $select, $options);
    print_r($options);
}
Nach dem Login kopieren

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
        )

)
Nach dem Login kopieren

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.


  1. >

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage