[PHP5] Link in String erkennen, klappt nicht ganz!!

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

  • [PHP5] Link in String erkennen, klappt nicht ganz!!

    Hi,

    wenn die Daten aus der Datenbank ausgelesen und angezeigt werden, sollen die Links (http, www, usw) innerhalb des Strings erkannt und als solches angezeigt werden.

    Dafür verwende ich folgendes Script:

    function str2link($string){

    $string= preg_replace('/[^href=\'|href=\\"|\>][^http:\/\/](www.[a-zA-Z0-9._-]+)/', ' http://$1', $string);

    $string= preg_replace('/([^href=\'|href=\\"|\>]http:\/\/[a-zA-Z0-9._-]+|[^href=\'|href=\\"|\>]https:\/\/[a-zA-Z0-9._-]+|[^href=\'|href=\\"|\>]ftp:\/\/[a-zA-Z0-9._-]+)/', "<br><br><a href='$0' target='_blank'>$0</a>", $string);

    return $string;
    }
    Es klappt auch mit Links wie www.google.de oder http://yahoo.com. wunderbar.

    Das Problem ist aber, dass wenn der Link wie folgt aussieht:

    www.google.de/art/test.php

    dann wird nur www.google.de als Link erkannt und der Rest nicht.

    Kennt jemand eine Lösung??

    Danke
    Last edited by bigtail; 25-10-2006, 19:40.

  • #2
    vermutlich muss du zu deinen suchzeichen [a-zA-Z0-9._-] noch ein / rein schreiben
    [a-zA-Z0-9._\-\/]
    auserdem kann eine url die parameter haben in dennen auch ,=?&% und nicht zuletzt # vorkommen können.
    also schreib am bestens einfach statt [a-zA-Z0-9._\-\/] ein \S
    Last edited by Slava; 25-10-2006, 20:00.
    Slava
    bituniverse.com

    Comment

    Working...
    X