Quitschibo: Erkennen von URLs

Hi Zusammen,

also, folgendes Problem... ich habe ein Textfeld indem ein User seine Infos gegeben soll... wenn er hier noch eine URL oder einen Maillink setzen möchte, so soll dieser vom Verarbeitungsscript erkannt und somit verlinkt werden.
Ich denke mal das das mit regulären Ausdrücken geht.. aber wie genau weiß ich leider nicht... ich hoffe ihr könnt mir helfen

CU Quitschi

  1. Hi Zusammen,

    also, folgendes Problem... ich habe ein Textfeld indem ein User seine Infos gegeben soll... wenn er hier noch eine URL oder einen Maillink setzen möchte, so soll dieser vom Verarbeitungsscript erkannt und somit verlinkt werden.
    Ich denke mal das das mit regulären Ausdrücken geht.. aber wie genau weiß ich leider nicht... ich hoffe ihr könnt mir helfen

    CU Quitschi

    ungetestet:

    $info =~s/((httpmailtoftp):[^\s]+)/<a href="\1">\1</a>/gi;

    oder so etwas in der art.
    klaus

    1. Hi,

      $info =~s/((httpmailtoftp):[^\s]+)/<a href="\1">\1</a>/gi;

      das Problem bei solchen RegExp ist, daß sie praktisch immer irgendwelche Probleme machen. Beispiele hier:

      "Meine Adresse lautet http://domain.de/pfad/index.html." (Man beachte den Punkt am Schluß...)

      "Mail mich an (mailto:xyz@abc.de)" (...und die Klammer.)

      "...oder auch sicher über https://domain.de/" (Tja, Vollständigkeit ist nicht ganz unwichtig.)

      "Adressen im Internet beginnen gewöhnlich mit http://."

      Irgendwo müßte ich zu Hause noch 'ne mehrseitige RegExp rumfliegen haben, die völlig RFC-konform ist (wenn auch vielleicht nicht DAU-konform). Ich werde nachher mal danach suchen, wenn mir keiner zuvor kommt :-)

      Übrigens bin ich Regular in news:de.comp.perl.misc, und habe hiermit einen weiteren Teststring produziert ;-)

      Cheatah

      1. hallo,
        jaja, ich weiß, ist nicht ganz sauber und RFC-konform und so weiter, aber mir gings mehr um die Idee und nicht eine fertige Lösung. weil wenn einem alles vorgekaut wird, dann machts ja keinen Spaß mehr.

        klaus

        1. Hi,

          jaja, ich weiß, ist nicht ganz sauber und RFC-konform und so weiter, aber mir gings mehr um die Idee und nicht eine fertige Lösung. weil wenn einem alles vorgekaut wird, dann machts ja keinen Spaß mehr.

          das sollte keine Beschwerde oder so sein, ich wollte nur auf die Probleme hinweisen, die bei sowas im Grunde zwangsläufig auftauchen.

          Cheatah

      2. "Meine Adresse lautet http://domain.de/pfad/index.html." (Man beachte den Punkt am Schluß...)

        Es ist unmöglich ohne komplexe heuristik diesen Fall korrekt zu verarbeiten (und selbst mit nicht zuverlässlig).

        Die 3.500 Zeichen RegEx von Abigail ist zumindest das zuverlässigste, was man bekommen kann, nur sind 3.500 Zeichen regulärer Ausdruck unangemessen viel.

  2. Hi Quitschi,

    nimm doch einfach das Modul web.pm von xwolf da sind diese Funktionen schon drin: isURL(), isMail() ...

    viele Grüße, Rolf

    PS: Sorry wenn ich Dir nun den Spass am Programmieren genommen habe ;-)

  3. Hi Zusammen,

    also, folgendes Problem... ich habe ein Textfeld indem ein User seine Infos gegeben soll... wenn er hier noch eine URL oder einen Maillink setzen möchte, so soll dieser vom Verarbeitungsscript erkannt und somit verlinkt werden.
    Ich denke mal das das mit regulären Ausdrücken geht.. aber wie genau weiß ich leider nicht... ich hoffe ihr könnt mir helfen

    CU Quitschi

    Hi Auseinander,
    Da es ziemlich viele Faelle gibt, die Dir da in die Quere kommen koennen, warum machst Du das nicht so wie hier im Forum: biete ein Extrafeld fuer ne URL an.
    Andreas