ich: Klasse/Tag auslesen

hallo!

in meinen html dateien ist eine zeile, die ca so aussieht:

<TD WIDTH=464 HEIGHT=15 align="left" valign="top" bgcolor="#E1E1E1" class="ueberschrift_inhalt">zu-ermittelnder-text:</TD>

das "class="ueberschrift_inhalt"" ist sogesehen nur bei solchen überschriften dabei.
nun ist meine frage: wie kann ich den 'zu-ermittelnden-text' herausbekommen?

danke!

  1. Hi,

    in meinen html dateien ist eine zeile, die ca so aussieht:
    <TD WIDTH=464 HEIGHT=15 align="left" valign="top" bgcolor="#E1E1E1" class="ueberschrift_inhalt">zu-ermittelnder-text:</TD>

    mit regular Expressions:

    du suchst praktisch nach <td [beliebihger Inhalt] class="ueberschrift_inhalt" [beliebihger Inhalt] > [beliebihger Inhalt] </td>

    suchen solltest Du nicht Case-Sensitiv und mehrzeilig

    http://de.php.net/manual/de/function.preg-match-all.php
    http://de.php.net/manual/de/pcre.pattern.modifiers.php
    http://de.php.net/manual/de/pcre.pattern.syntax.php

    ciao
    romy

    1. preg_match_all ('#<td.*class="ueberschrift_inhalt".*>(.*)</td>#i', $datei_inhalt, $ueberschrift); echo "<textarea>".$ueberschrift[0][0]."</textarea>";

      1. Hi,

        preg_match_all ('#<td.*class="ueberschrift_inhalt".*>(.*)</td>#i', $datei_inhalt, $ueberschrift); echo "<textarea>".$ueberschrift[0][0]."</textarea>";

        was geht nicht?
        Was steht denn drin in $ueberschrift[0][0] bzw. in
        $ueberschrift[0][1]
        oder überhaupt:
        echo var_dump($ueberschrift);

        ???

        müssen die .* nach dem td und vor dem schliessenden Tag nicht auch in Klammern?

        ciao
        romy

        1. jetz hab ich es so geändert:
          preg_match_all ('#<td(.*)class="ueberschrift_inhalt"(.*)>(.*)</td>#i', $datei_inhalt, $ueberschrift);
          echo var_dump($ueberschrift);

          das liefert dieses ergebnis:
          array(4) { [0]=> array(0) { } [1]=> array(0) { } [2]=> array(0) { } [3]=> array(0) { } }

          so wie ich den text verstanden habe, sollte nun der gesuchte wert in $ueberschrift[1][0] zu finden sein.
          das ist er leider nicht :-(

      2. Holladiewaldfee,

        preg_match_all ('#<td.*class="ueberschrift_inhalt".*>(.*)</td>#i', $datei_inhalt, $ueberschrift);

        Ein regulärer Ausdruck ist von Anfang an erstmal "gierig". D.h.: .* frißt Dir den gesamten Text bis zum Ende. Du brauchst also noch den Modifier "U".

        Ciao,

        Harry

        --
          Intelligenz ist nicht zwingend etwas positives.
          Man weiß erst, was man hatte, wenn man es verloren hat.