Ankündigung

Einklappen
Keine Ankündigung bisher.

Ausdruck, wie gehts richtig?

Einklappen

Neue Werbung 2019

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

  • Ausdruck, wie gehts richtig?

    Hallo,

    mein Beispiel:
    PHP-Code:
    <?php
    $text 
    "Das ist eine url [url]www.test-domain.de/test/test.php?id=5&bla=20[/url] und das [url]http://www.test.de[/url] und auch das www.domain.de.";
    $text2 preg_replace("!(www\.|[url]http://www\[/url].)([a-zA-Z0-1\-]{3,}\.)([a-zA-Z0-9\.\-\?\&=/]+)([^\.])!","<a href=\"$1$2$3\">$1$2$3</a>",$text);
    echo 
    $text2;
    ?>
    Das erscheint auf dem Bildschirm:
    Das ist eine url www.test-domain.de/test/test.php?id=5&bla=20und das http://www.test.deund auch das www.domain.d.

    Warum wird an jedem Ende ein Leerzeichen bzw. Teil der Url entfernt?

    Das soll man Muster können:
    Url finden, die mit "http://www." oder "www" beginnt, darauf eine mindestens 3stellige Domain folgt und mit einen beliebig langem Ende endet, das aber nicht mit einem "." aufhört.


    Gruß

  • #2
    Mhh erscheint in der Tat sehr merkwürdig
    Ich geb dir mal den RegExp den ich dafür nutze:

    Code:
    %\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|]%
    Grüße fackel

    Kommentar


    • #3
      Das Muster sorgt nur für Fehlermeldungen. Nach Anpassung funktioniert es noch weniger als meins.
      Weiß jemand, was bei meiner Lösung falsch ist?

      Kommentar


      • #4
        Zitat von Back-Up
        Warum wird an jedem Ende ein Leerzeichen bzw. Teil der Url entfernt?
        Deswegen:

        ...[...]+)([^\.])!
        in
        ...[...]+[^\.])!
        ändern

        Kommentar


        • #5
          Das führt zu:
          Das ist eine url www.test-domain.de/test/test.php?id=5&bla=20 und das http://www.test.de und auch das www.domain.de.

          Kommentar


          • #6
            hab das mit dem link übersehen! dann einfach so lassen wie du es hattest und folgendes ändern:

            <a href=\"$1$2$3\">$1$2$3</a>
            in
            <a href=\"$1$2$3\">$1$2$3</a>$4

            p.s.: deine regel mit dem punkt am ende ist übrigens humbug. schau dir doch den letzten link von deinem beispiel an. nicht vergessen http:// einzufügen, wenn die website mit www. beginnt.
            demnach ist href=\"$1$2$3\" nicht richtig.

            Kommentar


            • #7
              Jetzt wird das ausgegeben: Das ist eine url www.test-domain.de/test/test.php?id=5&bla=20 und das http://www.test.de und auch das www.domain.de.

              Und ohne ([^\.]) wird der Punkt am Satzende mitverlinkt.

              Kommentar


              • #8
                und???

                /edit: wenn du das www.domain.de meinst. begründung steht oben. stand übrigens auch schon vor meinem edit da. da hab ich nur das eingefügt.
                Zitat von karl-150
                demnach ist href=\"$1$2$3\" nicht richtig.

                Kommentar


                • #9
                  Was und??? Problem ist, dass eine Url am Ende des Satzes nicht richtig verlinkt wird.

                  Kommentar

                  Lädt...
                  X