Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] preg_match Link erkennen

Einklappen

Neue Werbung 2019

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

  • [Erledigt] preg_match Link erkennen

    Ich möchte im Text einen Link erkennen und ihn entsprechend formatieren. Dies funktioniert z.B.:
    PHP-Code:
    $text "http://www.php.de";
    if(
    preg_match("[http://]"$text))
    {    
        echo 
    '<a href=' $text'>Link</a>';

    Wenn der Text aber länger ist wie z.B.:
    PHP-Code:
    $text "Eine Weiterleitung zu http://www.php.de";
    if(
    preg_match("[http://]"$text))
    {    
        echo 
    '<a href=' $text'>Link</a>';

    funktioniert das natürlich nicht mehr.

    Gibt es eine Möglichkeit, dass im Text ausschließlich der Link formatiert, der restliche Text aber in Ruhe gelassen wird?


  • #2
    PHP: preg_replace - Manual
    "Dummheit redet viel..Klugheit denkt und schweigt.." [Amgervinus]

    Kommentar


    • #3
      würde ich an deine stelle mit javascript machen

      document.getElementById("linkID").href = http://hier neuer link

      Kommentar


      • #4
        Zitat von J_Jara Beitrag anzeigen
        würde ich an deine stelle mit javascript machen

        document.getElementById("linkID").href = http://hier neuer link
        Wie soll denn das gehen? Die Texte kommen alle aus einer DB.
        Destruction hat schon Recht mit preg_replace(). Ich muss die Funktion nur noch anpassen.

        Kommentar


        • #5
          PHP-Code:
          preg_replace('#(http://)?(www\.)?(.*?)\s#','\\2',......) 
          Irgendwie sowas sollte das dann werden.
          "Dummheit redet viel..Klugheit denkt und schweigt.." [Amgervinus]

          Kommentar


          • #6
            PHP-Code:
            $zeichenkette "Dies ist eine Ueberleitung zu www.php.de. Hoffentlich funktioniert das auch.";
            $suchmuster "/[www]/i";
            $ersetzung "<a href='http://' . $zeichenkette . '>Link</a>";
            echo 
            preg_replace($suchmuster$ersetzung$zeichenkette); 
            Kommt Folgendes raus: Dies ist eine Ueberleitung zu LinkLinkLink.php.de. Hoffentlich funktioniert das auch.
            Nur das WWW wird ersetzt.

            Kommentar


            • #7
              Liest Du auch die Antworten? Ehrlich, sowas nervt total.
              --

              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


              --

              Kommentar


              • #8
                Zitat von nikosch Beitrag anzeigen
                Liest Du auch die Antworten? Ehrlich, sowas nervt total.
                Wenn ich nicht die Antworten lesen würde, wäre ich nicht auf preg_replace gekommen.

                Die letzte Antwort von Destruction hat mir aber auch nicht weitergeholfen:
                PHP-Code:
                $zeichenkette "Dies ist eine Ueberleitung zu www.php.de. Hoffentlich funktioniert das auch.";
                echo 
                preg_replace('#(http://)?(www\.)?(.*?)\s#','\\2',$zeichenkette); 
                Ergebnis: www.auch.

                Kommentar


                • #9
                  URLS können keine Leerzeichen enthalten. Das sollte Dir weiterhelfen.
                  Dies ist eine Ueberleitung zu php.de - das Deutsche PHP-Forum. Hoffentlich funktioniert das auch.
                  zeigt dann auch schon das Problem. Wenn der Punkt am Ende nicht zur URL gehört, hast Du kaum Möglichkeiten korrekt zu verlinken. Hier im Board wird das Versucht, dafür treten dann wieder Probleme auf, wenn die URL/URI eben doch mal mit einem Sonderzeichen wie ) endet.
                  --

                  „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                  Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                  --

                  Kommentar


                  • #10
                    Ein bisschen mitdenken und lesen gehört auch dazu.
                    Deine Versuche mit [www] macht überhabt keinen Sinn und zeigt, dass du dich NICHT damit auseinandergesetzt hast!
                    "Dummheit redet viel..Klugheit denkt und schweigt.." [Amgervinus]

                    Kommentar


                    • #11
                      Danke

                      Kommentar

                      Lädt...
                      X