16.7 Text innerhalb von HTML-Tags finden

Problem

Sie möchten Text auslesen, der sich innerhalb von HTML-Tags befindet. Zum Beispiel möchten Sie alle Überschriften in einem HTML-Dokument finden.

Lösung

Lesen Sie die HTML-Datei in einen String ein und führen Sie nicht-gieriges Matching mit Ihrem Muster durch:

$html = join('',file($file));
preg_match('#<h([1-6])>(.+?)</h\1>#is', $html, $matches);

In diesem Beispiel enthält $matches[2] ein Array mit den ausgelesenen Überschriften.

Diskussion

Es ist schwierig, HTML-Code mit einfachen regulären Ausdrücken korrekt zu analysieren. Einer der Vorteile von XHTML ist, dass es deutlich einfacher zu validieren und zu zerlegen ist.

Zu Beginn des Suchmusters sehen wir, dass das Ergebnis der Zahlengruppe [1-6] mit runden ...

Get PHP 5 Kochbuch, Third Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.