html parsen und teile herausfiltern?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • html parsen und teile herausfiltern?

    Hallo Leute,
    Ich habe ein Problem. Ich hoffe es kann mir jemand weiterhelfen...
    Leider tue ich mich nicht regulären Audrücken sehr schwer

    Also, angenommen ich habe einen Html-String folgender Art:

    Code:
    <tr>
    <td*>text1</td>
    <td*>text2</td>
    <td*><a href='linkurl'*>text3</a></td>
    <td*>text4</td>*
    </tr>
    Was ich suche ist ein regulärer Ausdruck, der mir ein Array liefert

    array[0] = text1
    array[1] = text2
    array[2] = text3
    array[3] = text4
    array[4] = linkurl

    Das Problem ist, dass überall dort wo ein * im Html-String erscheint diverse Parameter oder unrelevater Code (keine html-tags) ohne regelmäßkeit erscheinen, so dass diese Bereiche von dem regulären Ausdruck ignoriert werden müssten.

    Es wäre spitze wenn mir jemand helfen könnte. Ich verzweifel bald...
    1000Dank!!

    Liebe Grüße
    Sebi

    ps: Hintergund ist die Erstellung eines Scriptes welches diverse WebPages automatisch scannen soll und Links zu den neuen Web-Beiträgen in eine Newsdatenbank übernehmen soll. Beispiel in Fuß der Seite playboaters.de

  • #2
    PHP-Code:
    $pattern "#<tr>.+<td.*>(.*)</td>.+<td.*>(.*)</td>.+<td.*><a href='(.*)'.*>(.*)</a></td>.+<td.*>(.*)</td>.+#isU"
    Die reihenfolge ist aber etwas anders:

    array[0] = gesamt
    array[1] = text1
    array[2] = text2
    array[3] = text3
    array[4] = linkurl
    array[5] = text4

    ausführen mit preg_match_all und als. 4. Atrribut PREG_SET_ORDER


    Hier ein paar Faustregeln:

    - Alles, was du später im Array haben möchtest wird ein (.*) im Pattern
    - Alles, was später weggeschmissen werden soll, wird .* im Pattern
    - Alles, was später weggeschmissen werden soll, und du weisst, dass dort IMMER mind. ein Zeichen vorkommt (Leerzeichen und Zeilenumbrüche auch !) kann statt .* auch .+ werden

    Das Pattern im idealfall mit einem Zeichen beginnen, welches im Pattern selber nicht vorkommt. Normalerweise eigenen sich / # oder auch ! am besten dafür. Und bei solchen Pattern nie den modifier U am Ende vergessen, sonst findet das ding plötzlich 20 Spalten als ein Ergebnis, anstatt 20 Spalten in 20 Ergebnissen
    Zuletzt geändert von EEBKiller; 02.11.2005, 19:25.

    Kommentar


    • #3
      @EEBKiller: Danke dir für die schnelle und sehr gut verständliche Hilfe!!

      lg, Sebi

      Kommentar

      Lädt...
      X