regex suchen nach domains und ersetzen durch link mit preg_replace

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

  • regex suchen nach domains und ersetzen durch link mit preg_replace

    Ich versuche jetzt schon ein Stunde die Syntax einer regexabfrage. Leider komme ich nicht auf den sprung. Daher diese Frage:

    ich möchte also Domains erkennen und als Link ausgeben.
    Dazu verwende ich preg_replace. die folgede Syntax gibt jedoch folgendne fehler aus der eigentlich nicht sein sollte oder?

    Warning: preg_replace() [function.preg-replace]: Unknown modifier '/' in C:\xampp\htdocs\sites\becos\inhalte\13_messe.php on line 50

    PHP-Code:
    $suchmuster '/(http|https)(://)(www\.)([a-z0-9\.-]{3,})\.([a-z]{2,4})/';
    $ersetzung "<a href='$1'>weitere Informationen hierzu</a>";
    echo 
    nl2br(preg_replace($suchmuster$ersetzung$row['text'])); 

  • #2
    ok hab das escapen vergessen

    aber leider wird nix ersetzt.

    PHP-Code:
    $suchmuster '/(http|https)+(:\\\/\\\/)+(www\.)+([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$/'

    Kommentar


    • #3
      so jetzt bin ich ein schritt weitergekommen

      FINDET ER MEINE DOMAIN MIT ZUSATZ
      nun will ich aber, dass, wenn ein leerzeichen folgt, die umformung endet. denn wenn eine andere zeichenkette folgt wird die in den link hineingenommen. Vielleicht weiß ja jemand eine Lösung dazu

      PHP-Code:
      $suchmuster '/((http|https)+(:\/\/)+(www\.)+([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})?(.*))/i'

      Kommentar


      • #4
        Re: so jetzt bin ich ein schritt weitergekommen

        Original geschrieben von sanktusm
        nun will ich aber, dass, wenn ein leerzeichen folgt, die umformung endet.
        wenn du noch ein bisschen wartest, wird sanktusm bestimmt wieder antworten

        in der zwischenzeit könntest du aber auch erklären, was ".*" am ende bewirkt.
        aber auch sonst sieht mir der regex aus, wie ohne plan zusammengeschustert (+, ?)

        Kommentar


        • #5
          Bitte:

          PHP-Code:
          '~((http|https)+(://)+(www.)+([a-zA-Z0-9-]+.)+
          ([a-zA-Z]{2,4})?(.*[^\S]))~' 

          Kommentar


          • #6
            sanktusm bin ich selbst

            Ich habe tatsächlich keinen so genauen plan. Die Domain ohne Pfade kann damit ohne Probleme erkannt werden . NUr wenn ein Pfad oder ein Pfad zu einer Datei folgt gibt es schwierigkeiten.

            Wenn Du schon so ein waches Auge für Lösungen hast kannst Du mir sicher weiterhelfen, oder?

            Kommentar


            • #7
              nein leider ist das nicht die lösung

              es werden nach wie vor folgende zeichenketten die nichts mit der Domain zu tun haben eingebunden. Es muss noch ein lehrzeichen am schluss hin.

              Kommentar


              • #8
                Äh... ja, ich dachte, du das es beim Leerzeichen getrennt wird?

                URL - Space - Text ?!

                Zumindest hast du es oben so geschildet^^..

                Wie soll man URL-TEXT voneinander trennen, wenn es keinen sinnvollen Delimeter gibt?

                Kommentar


                • #9
                  unformatiert sieht der text so aus:

                  HIER EIN TEXT DANN DAS HIER http://www.comdesi.de/file/index.php hier noch ein anderer text

                  Kommentar


                  • #10
                    Guckst du:

                    http://regexp-evaluator.de/evaluator...6912/#ergebnis

                    Ich hab mir nun nicht die Mühe gemacht, deinen ganzen Regex umzuschreiben, ums sauber zu halten...

                    mfg

                    Kommentar


                    • #11
                      vielen dank werd es gleich mal ausprobieren

                      leider ist das Problem das selbe es wird nachfolgender text eingebunden
                      vielleicht kann der eigentümer dieser seite php-resource.de weiterhelfen. bei dem klappt es nämlich

                      Kommentar


                      • #12
                        So..

                        http://regexp-evaluator.de/evaluator...5bf8/#ergebnis

                        mfg

                        Kommentar


                        • #13
                          So geht es nun

                          PHP-Code:
                          $suchmuster '#((http|https)+(\://)+(www\.)+([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})?(?:[\S])*)#i'
                          war ne harte arbeit. vielen dank an alle die mitgewirkt haben

                          Kommentar

                          Lädt...
                          X