Flachen Text aus Elementen mit einer bestimmten Klasse mithilfe von PHP DOM extrahieren
Das Extrahieren von Text aus bestimmten HTML-Elementen ist eine häufige Aufgabe in der Webentwicklung. PHP DOM bietet robuste Tools zum Parsen von HTML und zum Zugriff auf dessen Inhalte. Dieser Artikel befasst sich mit einer spezifischen Anforderung zum Extrahieren von Text aus Elementen mit einer nominierten Klasse in zwei flache Arrays.
Problem
Gegebener HTML-Inhalt, der Text enthält, der auf mehrere p-Elemente verteilt ist Bei abwechselnden Klassennamen besteht die Aufgabe darin, den Text in zwei Arrays zu speichern: eines für Überschriften und eines für den Inhalt. Zum Beispiel mit dem folgenden HTML-Code:
<p class="Heading1-P"> <span class="Heading1-H">Chapter 1</span> </p> <p class="Normal-P"> <span class="Normal-H">This is chapter 1</span> </p>
Wir müssen die folgende Ausgabe erhalten:
$heading = ['Chapter 1', 'Chapter 2', 'Chapter 3']; $content = ['This is chapter 1', 'This is chapter 2', 'This is chapter 3'];
Lösung
Um dies zu erreichen Für die Extraktion mit PHP DOM verwenden wir DOMDocument und DOMXPath. Die Lösung umfasst die folgenden Schritte:
$dom = new DOMDocument(); $dom->loadHTML($test);
$xpath = new DOMXPath($dom);
$heading = parseToArray($xpath, 'Heading1-H'); $content = parseToArray($xpath, 'Normal-H');
In der Funktion parseToArray():
Hier ist der vollständige PHP-Code:
query($xpathquery); $resultarray = []; foreach ($elements as $element) { $nodes = $element->childNodes; foreach ($nodes as $node) { $resultarray[] = $node->nodeValue; } } return $resultarray; } $test = << Chapter 2This is chapter 2
Chapter 3
This is chapter 3
HTML; $dom = new DOMDocument(); $dom->loadHTML($test); $xpath = new DOMXPath($dom); $heading = parseToArray($xpath, 'Heading1-H'); $content = parseToArray($xpath, 'Normal-H'); var_dump($heading); echo "
"; var_dump($content); echo "
";
Dieser Ansatz nutzt die Leistungsfähigkeit von PHP DOM und XPath, um effizient Text aus HTML-Dokumenten zu extrahieren und so eine komplexere und gezieltere Inhaltsbearbeitung zu ermöglichen.
Das obige ist der detaillierte Inhalt vonWie extrahiere ich mit PHP DOM Text aus HTML-Elementen mit bestimmten Klassen in flache Arrays?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!