Joachim: Link in url umwandeln...

Hi

Ich will nen link im forum in eine Url umwandeln.
  $zeile[talkbeitrag] = preg_replace ("/(http://.*?)\s/", "<a target="blank" href="$1">$1</a> ", $zeile[talkbeitrag]);

nur muß nach dem link ein leerzeichen kommen. schön und gut! passiert auch zu 80%... nur im fall wo man nur die url postet steht nach der url kein leerzeichen also funzt das ganze nimma .. hmmmm ...

mfg joachim

zb sdasdjh http://www.aaa.at dsfsdfj
=> funzt

http://www.aaaa.at
=> funzt nimma

  1. Ich will nen link im forum in eine Url umwandeln.
      $zeile[talkbeitrag] = preg_replace ("/(http://.*?)\s/", "<a target="blank" href="$1">$1</a> ", $zeile[talkbeitrag]);

    nur muß nach dem link ein leerzeichen kommen. schön und gut!

    Nein, sonst würde es ja funktionieren. Wie immer sollte man beim Programmieren das prüfen, was man haben will (hier: die Adresse) und nicht jenes, was man nicht haben will (hier: das Leerzeichen).

    Das Format von URNs ist standardisiert und unter http://www.ietf.org/rfc/rfc2141.txt, Abschnitt 2 bzw. speziell 2.2, beschrieben. Halte Dich daran, es sind nur Buchstaben und Ziffern sowie etwas mehr als ein Dutzend Satzzeichen erlaubt. Eventuell möchtest Du den Bereich noch etwas um einige Buchstaben erweitern, um unwissende Benutzer nicht in den Wahnsinn zu treiben, dann _mußt_ Du aber die Adresse mittels urlencode() ausgeben (siehe auch unten).

    Was mir in Deinem Muster außerdem auffällt: Was möchtest Du mit ".*?" bezwecken? IMHO macht das Fragezeichen keinerlei Sinn.

    Und last but not least kann man momentan Deine Seiten wunderbar zerlegen. Oder filterst Du HTML-Code (inklusive Javascript und CSS) aus den Benutzereingaben raus? Informiere Dich über htmlentities() im Allgemeinen und, für die URL, urlencode() im Besonderen.

    Gruß,
      soenk.e