PHP - HTML-Tags auslesen mit Attribute - preg_match

  • Hallo Mitglieder von Forum-Hilfe!

    Ich versuche schon seit drei ganzen Tagen
    mit PHP und der Funktion "preg_match" bzw. "preg_match_all" HTML-Tags und seine Attribute herauszufiltern!

    Habe schon in Google gesucht und auch vieles gefunden,
    nur nicht leider das was ich gesucht habe.

    Ich habe auch schon mit regulären Ausdrücken versucht zu arbeiten,
    nur ich bekomme es leider nicht hin.

    Wollte auch mal nach fragen ob einer von Euch mit regulären Ausdrücken mehr kenntnisse hat.

    So in der Richtung habe ich mir das vorgestellt:

    Nur ich habe leider keine Ahnung wie ich das machen soll mit den regulären Ausdrücken.

    Vielleicht habt Ihr ja eine Idee für mich, ich würde mich auf eine weiterhelfende Antwort freuen. :)

    Liebe Grüße,
    Cookie.

  • Leute GRUUNDLAGEN!!!
    Was ist HTML?
    -> Hyper Text Markup Language
    -> X M L mit Regeln

    Bemüh also mal google bezüglich XML parsen.

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • Hallo Tabse,

    danke für den Hinweis mit den Grundlagen.
    Und es ist mir bekannt was HTML und XML ist.

    Das mit den XML-Parsen das kenne ich bereits.

    Ich habe auch schon eine Class geschrieben, die XML auslesen kann und als Objekt wiedergibt

    Zum Beispiel:

    PHP
    $xml->body[0]->bgcolor[0]->value;

    Nur das suche ich leider nicht.

    Ich möchte gerne mal mit preg_match und preg_match_all etwas machen und lernen.

    Liebe Grüße,
    Cookie.


  • Achso, ja dann hab ich dich falsch verstanden. Wenns dir nicht ums XML parsen geht sondern ums RegExp üben kann ich dir sagen, dass regexps für XML nich soo geeignet sind. Wenn du z.B. einen Spider schreiben willst (oder Spambot etc). dann kann dir das behilflich sein, um genaueres aus dem HTML-Code der seite rauszufiltern, aber so wie du das bereits geschrieben hast, wirds mit regexp schwer.

    Aber du kannst gerade im bezug auf Webseiten mal ein Rundmailscript für ein Browsergame deiner Wahl schreiben. Also ein script, dass sich mit einem Accoutn beim Browsergame einloggt und dann eine Vorgegebene Nachricht an eine bestimmte Zielgruppe sendet. Wenn du dafür eine Klasse für HTTP-Requests brauchst schreib mir ne PM, ich glaub ich hab da noch eine rumfahren.

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • Tobse,

    ich glaube das wir uns immer noch nicht so ganz verstehen ^^
    sowas wie einen Spambot habe ich auf gar keinen Fall vor zu machen.

    Ich möchte einfach mit einer Funktion XML bzw. HTML auslesen
    und wenn in diesen Tag attribute vorhanden sind

    diese dann mit aus zu lesen ...

    Ausgabe:
    ( Es könnte etwas anders aussehen, als wie es sein sollte^^ )

    So in der Richtung sollte das sein ...
    ich bin auch nebenbei am programmieren
    und versuch da noch ne lösung zu finden

  • Wir verstehen uns schon. Allerdings sind Regular Expressions nicht zum parsen von XML da. Der einzige Zweck für Regular Expressions im Bezug auf XML/HTML ist der für Spider. Wenn du Rgular Expressions üben möchtest nimm von mir aus Telefonnummern, E-Mail Adressen, Web URLs oder schreib nen LaTeX>HTML Converter. Aber HTML wirst du damit nich annähernd so gut (und schnell) analysieren können wie mit dem klassischen Parser.

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • Hi Cookie,
    ich glaube, wenn ich mit Regex spielen würde, würde ich probieren das so irgendwie anzugehen:

    Das dann in eine rekursive Funktion und dann wirds schwierig, weil nicht jedes Tag hat ein schließendes wie z.B. <img> ;

    p.s. wenn du Regex lernen möchtest dann schau dir das hier mal an:
    http://www.danielfett.de/internet-und-o…aere-ausdruecke

    Gruß crAzywuLf :D

    Einmal editiert, zuletzt von crAzywuLf (23. August 2011 um 12:57)