Holger: URLs automatisch verlinken

Hallo!
Das mußte doch eigentlich schon gefragt worden sein, ich hab' aber nur was ähnliches für Perl gefunden:

Wie kann man am geschicktesten (für Gästebücher/Foren) eingegebene URLs verlinken, d.h. in <a href="... umwandeln.
Es sollten möglicht viele Varianten erkannt werden (www.xyz.xyz, http://www.xyz.xyz, www.xyz.xyz/xyz.html, ...)

Viele Foren haben diese Funktion, da mmüßte es doch eine Standart-Lösung geben!

Danke & Grüße: Holger

  1. Eine perfekte Standardloesung gibt es dafuer nicht. Denn wie sollte zum Beispiel ein Programm erkennen, ob es sich bei meiner Web-Adresse gr@phics.de um eine URL oder eine Email handelt (beides!)? Und wenn jemand zum Beispiel einen Java-Quelltext postet, der einen String wie z.B. "klasse1.klasse2.com" enthaelt, koennte dass als URL missinterpretiert werden. Die Toleranz musst du schon selber reinprogrammieren.

    1. Eine perfekte Standardloesung gibt es dafuer nicht. Denn wie sollte zum Beispiel ein Programm erkennen, ob es sich bei meiner Web-Adresse gr@phics.de um eine URL oder eine Email handelt (beides!)?

      Tja, selbst schuld, wenn man non-standard-konforme URLs verwendet!!

      Clemens

      1. *peinlichgetroffenzusammenzuck*

        Hast ja recht, das ist die Eitelkeit, eine schoene Internetadresse besitzen zu wollen, wenn alle anderen schon weg sind :-). Klar kann man auch mit www.phics.de oder phics.de auf die Seite zugreifen, aber gesetzt den Fall, jemand will eine @-Adresse posten - und es gibt ja einige, die eine solche besitzen - haben wir immer noch ein Problem.

        Und meine grundsaetzliche Meinung. Man sollte als Programmierer nicht sagen "Das ist Standard, dann mach ich das auch so, und wenn jemand anders ist - Pech gehabt". Gerade das Beispiel Netscape / IE zeigt, dass programmierte Seiten auch fuer Surfer zugaengig bzw. "stilvoll betrachtbar" sein sollten, die einen Browser benutzen, der nicht eisern die W3C-Norm verfolgt.

        Aber das ist eine lange Geschichte und sollte vielleicht in einem anderen Thread weiterverfolgt werden - wenn sie nicht schon tausendmal durchgekaut worden ist, was ich viel eher vermute...

        1. Hi,

          *peinlichgetroffenzusammenzuck*

          Peinlich brauch es Dir nicht sein, wenn Du es nicht wustest.

          Hast ja recht, das ist die Eitelkeit, eine schoene Internetadresse besitzen zu wollen, wenn alle anderen schon weg sind :-).

          Nun gut, das ist der einzige Grund den ich echt nachvollziehen kann. ;)
          Aber hast Du Dir denn echt schon mal die Frage gestellt, warum sich E-Mail Adressen und URLs syntaktisch unterscheiden?
          Damit man sie eben auch ohne den Kontext zu kennen als solche unterscheiden kann. Dies ist bei Dir nicht möglich. Aber ich glaube, über das für und wieder von q-Domains bracuehn wir uns nicht streiten. Ein Blick ins Achiv genügt wohl. Da sind alle Punkte aufgeführt...

          Und meine grundsaetzliche Meinung. Man sollte als Programmierer nicht sagen "Das ist Standard, dann mach ich das auch so, und wenn jemand anders ist - Pech gehabt". Gerade das Beispiel Netscape / IE zeigt, dass programmierte Seiten auch fuer Surfer zugaengig bzw. "stilvoll betrachtbar" sein sollten, die einen Browser benutzen, der nicht eisern die W3C-Norm verfolgt.

          Wofür gibt es denn Standards? Die sind doch eigentlich dazu da, Ordnung in das Chaos der proprietären Lösungen zu bringen. Sprich: Jeder (sowohl MS als auch netsacpe und viele andere hunderte Softwareschmieden) soll die Möglichkeit haben, "Internet-Betrachter" oder was auch immer zu schreiben, die gute Ergebnisse hervorbringen. atures in Ihren Brwosern verbauen heisst ja noch lange nicht, daß der gute Webdesigner sie auch einsetzten muß... Denn schließlich schaut meine W3C-konforme Seite sowohl im IE las auch in Opera, Netsacpe Mozilla und vielen anderen Broiwsern gut aus.

          Nun gut, ich will mit diesem Posting niemanden angreifen oder Kritisieren, der keine Standardkonformen Seiten/URL schreibt/nutzt. Aber ich versuchen, demjenigen den Sinnn von Standards näher zu bringen und ihn mit guten Argumenten überzeugen, diese auch einzusetzen.

          Aber das ist eine lange Geschichte und sollte vielleicht in einem anderen Thread weiterverfolgt werden

          Warum? Hier ist doch ein guter Platz...

          So, jedenfalls wünsche ich allen Postern, Forumern und Selflern ein schönes geruhsames Wochenende...

          Alex :)

          1. Wofür gibt es denn Standards? Die sind doch eigentlich dazu da, Ordnung in das Chaos der proprietären Lösungen zu bringen. Sprich: Jeder (sowohl MS als auch netsacpe und viele andere hunderte Softwareschmieden) soll die Möglichkeit haben, "Internet-Betrachter" oder was auch immer zu schreiben, die gute Ergebnisse hervorbringen. atures in Ihren Brwosern verbauen heisst ja noch lange nicht, daß der gute Webdesigner sie auch einsetzten muß... Denn schließlich schaut meine W3C-konforme Seite sowohl im IE las auch in Opera, Netsacpe Mozilla und vielen anderen Broiwsern gut aus.

            Da hast du mein Posting falsch verstanden, macht aber nix, ich kanns dir ja erklaeren: Ich schreibe ausschliesslich Seiten, die standardkonform sind, wenn ich Fehler nicht aus Versehen mache. Was ich kritisiere ist: Das reicht nicht. Denn selbst, wenn mein Quelltext eigentlich eindeutig ist (gutes Beispiel: Breiten und Hoehen von Framesets oder Tabellenspalten) wird sie von unterschiedlichen Browsen unterschiedlich interpretiert. Aus diesem Grund sollte man sich nicht alleine auf die Standards verlassen, sondern den ein oder anderen Trick verwenden, um die Seite auch in eigenwilligen Browsern vernuenftig aussehen zu lassen.

            Aber das ist eine lange Geschichte und sollte vielleicht in einem anderen Thread weiterverfolgt werden

            Warum? Hier ist doch ein guter Platz...

            Auch, wenn mein Posting vermutlich kaum einer mehr ansehen wird :-)

            Schoenes Wochenende. gr@phics.de

  2. Hallo!

    Hi

    Wie kann man am geschicktesten (für Gästebücher/Foren) eingegebene URLs verlinken, d.h. in <a href="... umwandeln.
    Es sollten möglicht viele Varianten erkannt werden (www.xyz.xyz, http://www.xyz.xyz, www.xyz.xyz/xyz.html, ...)

    Nachdem du einen Möglichen Link erkannt hast, kannst du mit fopen(); überprüfen, ob er auch existiert. Dadurch kannst du sowohl die Tolleranz erhöhen, als auch bei falsch geschriebenen Links (die ansonsten in jedes Schema passen würden) den Link verhindern. Beachte aber die Informationen auf http://www.php.net/manual/de/function.fopen.php insbesondere wegen der verschiedenen PHP Versionen

    Danke & Grüße: Holger

    Bitte, hoffe ich konnte helfen

    Heizer