Ankündigung

Einklappen
Keine Ankündigung bisher.

preg_replace: Links entfernen

Einklappen

Neue Werbung 2019

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

  • preg_replace: Links entfernen

    Hallo,
    ich möchte gerne aus einem Text alle Links entfernen lassen.
    Das wollte ich mit folgendem machen:
    Code:
    <a(.*)(href=\"[^\"]+)\"(.*)>(.*)<\/a>
    Leider wird dabei noch ein Stück nach einem Link komplett entfernt und der Satz ergibt keinen Sinn mehr.
    In meinem RegEx-Trainer habe ich ihn auch ausgeführt und es kam das selbe bei raus.
    Also stimmt etwas daran nicht. Nur was?
    Danke im voraus.
    MfG,
    WasserDragoon.

  • #2
    Also alle <a>-Tags?
    PHP-Code:
    <?php
    header
    ('Content-type: text/plain'); // nur zur besseren Ausgabe

    $html = <<<EOT
    <a href="link.html">mehr-
    zeiliger Link</a>

    und einmal [url="test.html"]in einer Zeile[/url]
    EOT;

    print_r(preg_replace('#<a(.*)>(.*)</a>#Uis''\\2'$html));
    ?>
    - U steht für Ungreedy, also nicht gierig, sonst würde (.*) eventuell mehr "fressen" als gewollt
    - i für Groß-Kleinschreibung, schließlich sollen <A>-Tags auch weg
    - s für die Mehrzeilige Verarbeitung, sonst wäre der 1. Link nicht entfernt worden

    Kommentar


    • #3
      Vielen dank das hat geklappt

      Kommentar

      Lädt...
      X