RegEx: Alle Inhalte von B-Tags finden

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

  • RegEx: Alle Inhalte von B-Tags finden

    Hallo,

    wie muss ich den regulären Ausdruck ändern, damit er mir alle Inhalt der B-Tags liefert?

    Also statt dem (\S+) muss irgendwas anderes rein oder?

    <?

    $zeile=implode("",file("datei.html"));

    $pattern = '=^(.*)<B>(\S+)</B>(.*)$=msi';
    while (preg_match($pattern, $zeile, $txt))
    {
    /* $txt[3] enthält die gewünschte URL. */

    echo $txt[3]."<p>";

    /* $zeile neu bauen */
    $zeile = $txt[1]." hier war mal ein Link ".$txt[6];
    }


    ?>

  • #2
    /<b[^>]*>(.+)<\/b>/Uis


    Btw: Endlosschleife!

    Kommentar


    • #3
      Wieso endlos?

      "$zeile sei der Inhalt einer zuvor eingelesenen HTML-Datei. Diese Variable muss innerhalb der While-Schleife neu zusammengebaut werden, sonst läuft man hier in eine Endlosschleife."

      Und das passiert doch auch im Script oder nicht?

      Kommentar


      • #4
        Ja klar. Aber mit meinem Pattern kann seine Schleife endlos werden, oder? Naja zumindest sollte er diese Möglichkeit in Betracht ziehen ...

        Kommentar


        • #5
          Wie wärs mit preg_match_all(), statt einer Schleife?
          PHP-Code:
          $pat "/<b>(.+)<\/b>/Uis";
          preg_match_all($pat$text$found);
          var_dump($found[1]); 
          So hast du alle deine <b>-Tags im Array $found[1]
          Gruss
          H2O

          Kommentar


          • #6
            Dann bräuchte er aber eine Schleife, um den String wieder zusammenzubauen. Oder irgendwas anderes kompliziertes.

            preg_replace() erscheint mir hier am sinnvollsten.

            Kommentar

            Lädt...
            X