Hallo Christian,
Zum parsen von HTML gibt es HTML-Parser. Versuche es nicht mit Regexen, das ist noch problematischer als die Verwendung von Regexen für das parsen von XML! 😉 Den via HTML-Parser aus der HTML-Datei extrahierten Text kannst du dann natürlich wieder mit Regexen bearbeiten, da spricht nichts gegen.
hmmm. HtmlParser habe ich noch nie genutzt.
Aufgrund der Anregungen hier möchte ich jetzt einige alte Scripte von mir der Gegenwart anpassen. Tut mir zwar ein wenig in der Seele weh, weil viel Arbeit und Herzblut... aber was solls, wenn es nicht mehr zeitgemäß ist, muss ich halt meine Arbeitsweise anpassen.
So dachte ich zunächst, müsste ja ein leichtes sein das schnell mal von String/Regex auf Parser anzupassen. Leider tue ich mich aber verdammt schwer und könnte Hilfe gebrauchen.
Beispiel: Für Recherchearbeiten nutze ich oft Auszüge aus Wikipedia, so hab ich mir im Laufe der Zeit schon eine Art eigenes Wikipedia aus den dortigen Daten angelegt. Wie bin ich da vor gegangen? Ziemlich einfach: Datei anfordern mit zb. file_get_contents, Merkmale/Strukturen/Elemente (meist durch Stringbefehle) raussuchen, die ich benötige, dann noch ein wenig Kosmetik, wie zb. strip_tags usw. Das hat natürlich den Nachteil, dass ich für verschiedene Kategorien auch verschiedene Parsetemplates bauen musste, so sind Biografien zb. anders gegliedert als naturwissenschaftliche Themen. Aber funktioniert soweit.
Nun versuche ich es über DOM-Parsing. Hmmm... gar nicht intuitiv und trivial wie erhofft. Beispiel:
$fl = 'https://de.wikipedia.org/wiki/Lex_Barker';
$doc = new DOMDocument();
$doc->loadHTMLFile($fl);
$result = $doc->saveHTML();
print_r($result);
Das sollte doch jetzt eigentlich soweit funktionieren, dass ich zb. mit echo "Ausgabe: $doc->getElementById('Leben')->tagName
das Element mit der ID "Leben" anzeigen/ansprechen kann. Aber vermutlich hab ich da was falsch verstanden. Bevor ich jetzt einen Roman draus mache, bin ich bis hier schon mal auf der richtigen Fährte?
Gruss
Henry