[Funktion] URL in HTML Link wandeln

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

  • #16
    kannst nicht immer alles für lau haben. kann durchaus mal sein, dass du mal selber lesen musst

    BTW: statt ereg nimmt man preg, ist schneller!

    Kommentar


    • #17
      Die Seite ist nu echt nicht der Brüller!

      Kann nicht jemand mal über den Code sehen und mir sagen was falsch ist?

      Hätte hier noch ne Funktion im Angebot,
      die funzt aber auch nicht wirklich.

      PHP-Code:
      function Umwandeln($string2) {
        
      $p[0][0] = '"(( |^)((ftp|http|https){1}://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)"i';
        
      $p[0][1] = '<a href="\1" target="_blank">\\1</a>';
        
      $p[1][0] = '"( |^)(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)"i';
        
      $p[1][1] = '\\1<a href="http://\2" target="_blank">\\2</a>';
        
      $p[2][0] = '"([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})"i';
        
      $p[2][1] = '<a href="mailto:\1">\\1</a>';
        for(
      $i=0$i<count($p); $i++) {
            
      $string2 preg_replace($p[$i][0], $p[$i][1], $string2);
        }
        return 
      $string2;

      Kommentar


      • #18
        ich finds eigentlich ganz verständlich

        Kommentar


        • #19
          nabend !

          sind deine links in der DB eh immer gültige links?

          Weil dann brauchst ja keine so komplizierte regexp, welche dir auch noch die Gültigkeit einer URL abcheckt.

          Das müsste ja wohl als erstes abgeklärt werden.
          FreeBSD - Unleash the daemon inside your PC

          Kommentar


          • #20
            Hi,

            es sind halt Links die die User eingeben.
            Ob die immer gültig sind, denke ich nicht.

            Aber hab jetzt eine Funktion die die Links findet und unwandelt.

            PHP-Code:
            function replace_uri($str) {
              
            $pattern '#(^|[^\"=]{1})([url]http://[/url]|[url]ftp://[/url]|mailto:|news:)([^\s<>]+)([\s\n<>]|$)#sm';
              return 
            preg_replace($pattern,"\\1<a href=\"\\2\\3\" target=\"_blank\"><u>\\2\\3</u></a>\\4",$str);

            Nur leider wandelt die keine EMail Links um.
            Wie muss ich die abändern?

            -Pixelschubser-

            Kommentar


            • #21
              Nur leider wandelt die keine EMail Links um.
              Wie muss ich die abändern?
              Suchst du Forum

              Kommentar


              • #22
                also das hier genügt doch vollkommen für deinen zweck denke ich mal:
                function replace_uri($str) {

                $pattern = '#(^http.?://|^ftp://|^mailto:|^)(.*)#';

                return preg_replace($pattern,"<a href=\"$1\$2\" target=\"_blank\">\$2</a>",$str);
                }
                du musst halt noch in einer zweite regexp/ersetzung checken wann jemand eine URL in die DB geben hat ohne protokoll.
                Schätze mal des gilt eh nur für http URL's.
                Das würde ich aber besser gleich beim Insert in die DB checken.

                Grüsse
                Zuletzt geändert von iQD; 12.03.2004, 23:10.
                FreeBSD - Unleash the daemon inside your PC

                Kommentar

                Lädt...
                X