Ankündigung

Einklappen
Keine Ankündigung bisher.

Links automatisch erstellen

Einklappen

Neue Werbung 2019

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

  • Links automatisch erstellen

    Hallo,
    ich wollte geren wissen wie man mit php automatisch Hyperlinks erstellen kann.
    Also ich habe vor, dass wenn jemand in ein Gästebuch www.google.de, http:// www.google.de oder google.de oder z.B. http://www.google.de/search?hl=de&sa...nG=Suche&meta=


    eingibt immer ein Link erstellt wird so wie hier im Forum
    Könnt ihr mir da weiter helfen?

  • #2
    dann muss du dich mit regex auseinander zu setzten oder zbs bei phpBB die passende stelle in queltext zu finden.
    Slava
    http://bituniverse.com

    Kommentar


    • #3
      grob würde es etwa so aussehen:
      Code:
      $pt="#\s((www\.|https*://)\S++)#";
      function callb($erg){
        return ' '.$erg[1].'';
      }
      echo preg_replace_callback($pt,'callb',$text);
      Slava
      http://bituniverse.com

      Kommentar


      • #4
        Habs so gemacht
        PHP-Code:
              $s_patter[]='"(( |^)((ftp|http|https){1}://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)"i';
          
        $r_patter[]='[url="\1"]\\1[/url]'
        Aber sobald ein & im Link ist wird der Link bis zum & weitergeführt danach kommt dann ein normaler Text und ein ;
        http://www.google.de?test&;php beibei ;php nicht mehr zum Link gehört

        Kommentar


        • #5
          es geibt mehrere zeichen, die du nicht aufgelistet hast.
          ausserdem wird ein link einfach mit www nich ersetzt.
          Slava
          http://bituniverse.com

          Kommentar


          • #6
            Mit (ftp|http|https|www) wird dann ja auch www ersetzt.
            Aber das & habe ich doch aufgelistet also müsste es doch eigendlich funktionieren oder nicht?

            Kommentar


            • #7
              kannst das ja sonst vielleicht auch in mehreren Schritten erledigen:

              PHP-Code:
                          #Muster für URL erfassen
                          
              $exp[] = "#\[url\]([\w]+?://[^ \"\n\r\t<]*?)\[/url\]#is";
                          
              $rep[] = "<a href=\"$1\" target=\"_blank\" class=\"nlink\">$1</a>";

                          
              $exp[] = "#\[url\]([^ \"\n\r\t<]*?)\[/url\]#is";
                          
              $rep[] = "<a href=\"http://$1\" target=\"_blank\" class=\"nlink\">$1</a>";

                          
              $exp[] = "#\[url\]((www|ftp)\.[^ \"\n\r\t<]*?)\[/url\]#is";
                          
              $rep[] = "<a href=\"http://$1\" target=\"_blank\" class=\"nlink\">$1</a>";

                          
              $exp[] = "#\[url=([\w]+?://[^ \"\n\r\t<]*?)\]([^?].*?)\[/url\]#i";
                          
              $rep[] = "<a href=\"$1\" target=\"_blank\" class=\"nlink\">$2</a>";

                          
              $exp[] = "#\[url=((www|ftp)\.[^ \"\n\r\t<]*?)\]([^?].*?)\[/url\]#i";
                          
              $rep[] = "<a href=\"http://$1\" target=\"_blank\" class=\"nlink\">\\3</a>";

                          
              #URL einfügen
                          
              $text preg_replace($exp$rep$text);

                          
              $text preg_replace("#(^|[\n ])((www|ftp)\.[^ \"\t\n\r<]*)#is""$1<a href=\"http://$2\" target=\"_blank\" class=\"nlink\">$2</a>"$text);

                          
              $text preg_replace("#(^|[\r\n])([\w]+?://[^ \"\n\r\t<]*)#is""$1<a href=\"$2\" target=\"_blank\" class=\"nlink\">$2</a>"$text); 
              so hab ichs zurzeit. Allerdings noch nicht alles abgedeckt... aber zum verfeinern der Scripte bin ich noch nicht gekommen.

              Erinnert stark an die Art wie es phpBB macht ^^ das kommt daher, dass ich mir da damals die denkanstösse geholt habe
              Das Recht auf Dummheit gehört zur Garantie der freien Entfaltung der Persönlichkeit.
              Mark Twain

              Kommentar


              • #8
                Zitat von bölckstoff
                Mit (ftp|http|https|www) wird dann ja auch www ersetzt.
                Aber das & habe ich doch aufgelistet also müsste es doch eigendlich funktionieren oder nicht?
                es wird zwar 'www' ersetzt aber leider ohne 'http' prefix.
                <a href="www....." ist kein richtiger link
                du muss nicht wirklich ein url auf seine richtigkeit prüffen, also finde ich mein fegex schon ausreichend (ok ftp muss auch rein).
                wenn du unbedingt url so wie im rfc haben willst (was du eigentlich nicht brauchst) , dann viel spass
                http://forum.de.selfhtml.org/archiv/...43180/#m236293
                Slava
                http://bituniverse.com

                Kommentar


                • #9
                  Habs nun mit dem Code von Slava gemacht der reicht wohl doch aus
                  Danke

                  Kommentar

                  Lädt...
                  X