Frage zu Regulärem Ausdruck

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

  • Frage zu Regulärem Ausdruck

    Hallo,

    ich habe ein problem, bei dem ich leider nicht weiterkomme.

    Ich möchte aus einer HTML-Datei, die ich in eine Variable eingelesen habe, einen bestimmten Teil herausfiltern und diesen dann ausgeben.

    der HTML-Teil ist folgender:

    Code:
    ...
    </TR>
    <TR>
    <TD colspan="2">Die angefragte Nummer ist gueltig.</TD>
    </TR>
    </TABLE>
    ...
    Herausfiltern möchte ich: "Die angefragte Nummer ist gueltig." also alles was zwischen
    Code:
    <TD colspan="2">
    und
    Code:
    </TD>
    steht.

    Dafür nutze ich folgenden Regulären Ausdruck:
    PHP-Code:
    preg_match("°\<TD colspan=\"2\"\>(.*?)\<\/TD\>°i"$htmlcode$match);
    echo 
    match[1]; 
    Ich benutze "°" als Begrenzungszeichen, so wie in der Zeitschrift "PHP Magazin" vorgeschlagen.

    Das Problem ist nun, manchmal geht es, manchmal aber auch nicht, obwohl der zurückgegebene HTML-Code immer der gleiche ist.

    Hat jemand eine Idee. Ist der oben angegebene Reguläre Ausdruck korrekt, um alles zwischen den zwei angegebenen Tags herauszulesen?

    Für Hilfe wäre ich SEHR dankbar.

    Jan
    Zuletzt geändert von phpforum; 05.11.2002, 13:16.

  • #2
    Ich bin's nochmal.

    Getestet habe ich das Skript auf meinem lokalen Rechner mit win 200 prof und php als cgi. Dort hat es nicht funktioniert.

    Jetzt habe das Ganze mal auf den Webserver (Linux) geschoben und dort funktioniert es?!

    Hat jemand ein Ahnung, an was das liegen kann? Gibt es Probleme mit Regulären Ausdrücken und Windows?

    Jan

    Kommentar


    • #3
      das proplem ist dass mehrere <TD colspan="2"> ... </TD> in deinem text vorkommen ..


      dh:

      PHP-Code:
      preg_match_all("°<TD colspan=\"2\">(.*?)</TD>°i"$htmlcode$match);
      print_r($match); 
      lass dir match ausgeben damit du siehst wie das aufgebaut ist ..
      danach kannst du herangehen und mit einer schleife alle inhalte vergleichen .. dort kannst du dann wirklich mit eregi prüfen ob der gesuchte string vorhanden ist oder nicht ..
      mfg,
      [color=#0080c0]Coragon[/color]

      Kommentar


      • #4
        Nimm folgenden reg. Ausdruck:
        #<td colspan=\"2\">([^<>]*)</td>#i
        [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
        [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
        [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

        © Harald Schmidt

        Kommentar

        Lädt...
        X