Alles ausgeben außer Regex, nur wie ???

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

  • Alles ausgeben außer Regex, nur wie ???

    Hallo,

    folgendes: ich will eine HTML-Datei einlesen um bestimmte durch <div class="...">...</div> - gekennzeichnete Bereiche in der HTML-Datei zu löschen bzw. ich brauche den Inhalt ohne diese bestimmten divs. Die ganze Datei ist voller Divs, aber bestimmte Divs bzw. die Teile, die von den Divs eingeklammert sind, will ich eben nicht haben. Beispiel.

    Irgendwo kommt ein <div class="test">Text xy</div> vor. "Test xy" will ich nicht haben. In der Datei gibt es zig test-Klassen und immer soll der Text innerhalb dieser Divs gelöscht werden. Ich brauche also eine variable hinterher, die alles enthält bis auf die Inhalte dieser Divs. Am besten wäre nattürlich wenn die entsprechenden <div>-Dinger gleich mit gekillt werden könnten, aber Hauptsache der Text ist erstmal weg.

    Ich habs bisher so probiert:
    Code:
    $regex = '|<div class=\"test\">(.*)</div>|Ui';
    preg_match_all($regex, $htmlpage, $ergebnis, PREG_PATTERN_ORDER);
    Dadurch krieg ich natürlich genau nur das, was ich löschen wollte. Wie kann ich also sagen: Gib mir alles AUSSER $regex ?

  • #2
    PHP-Code:
    $text preg_replace($regex''$text); 
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Ach man... wie hohl bin ich eigentlich ??? Ja, klar, so gehts natürlich. Oh man, manchmal hakts einfach im Koppe.
      Aber noch kurz was anderes. Ich habe gerade beobachtet, dass preg_replace() nicht funktioniert, wenn eine Enter-Taste in dem entsprechenden, zu ersetzenden String ist. Mein String wurde merkwürdigerweise nur manchmal ersetzt. Und nun stell ich fest, es liegt daran, dass manche Texte in den Divs Abstätze haben bzw. in ihnen mal die Enter-Taste zum Zeilensprung verwedendet wurde.
      Wie kann ich meinen String trotzdem replacen ?

      Kommentar


      • #4
        setz mal zusätzlich s als Modifikator

        Kommentar


        • #5
          Ja, habs bereits gelöst. Gerade eben. Ich hab vorher alles mit:

          $fileToChange = preg_replace('@([\r\n])[\s]+@', '', $fileToChange);

          replaced und dann gings. in HTML-Dateien muss man ja eh durch <br>'s die Umbrüche hervorrufen, von daher sind die Zeilenumbrüche im Quellcode eigentlich unwesentlich und können dann mit dem Ausdruck oben gänzlich gekillt werden. Zumindest funzt das in meinem Fall gut.

          Trotzdem danke für die schnelle Hilfe !

          Kommentar

          Lädt...
          X