[Funktion] URL in HTML Link wandeln

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #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!

    Comment


    • #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;

      Comment


      • #18
        ich finds eigentlich ganz verständlich

        Comment


        • #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

          Comment


          • #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-

            Comment


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

              Comment


              • #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
                Last edited by iQD; 12-03-2004, 22:10.
                FreeBSD - Unleash the daemon inside your PC

                Comment

                Working...
                X