Też uważam że lepiej to zrobić callbackiem, i działający przykład dałem tutaj:
http://forum.php.pl/index.php?showtopic=18...t-member-912891Ale również można całość machnąć w jednym wyrażeniu, używając negatywnego przewidywania wstecznego i takie wyrażenie wyglądać będzie w ten sposób:
Kod
#(?<!["'>]) ((f|ht)tp(s)?://[^\s]+)#is
A działać będzie w taki sposób:
http://gskinner.com/RegExr/?2vrhs Oczywiście wyrażenie do przechwytywania linków dostosujesz już pod swoje wymagania, osobiście używam takiego, ponieważ często w tekście można napisać www dodając kropkę i powstają niepotrzebnie linki
BTW w przypadku kiedy będziesz szukać linków również po www, to moja metoda jak i wszystkich innych którzy tutaj podali jakieś rozwiązanie, będzie działać nieprawidłowo. Z prostego względu, kiedy szukasz linków po www, a wykluczasz jedynie apostrof/cudzysłów, wówczas mając w kodzie html link zaczynający się od http, taki link również zostanie złapany. Czyli prócz samego wykluczania apostrofu/cudzysłowia, musiałbyś jeszcze wykluczyć ftp/http/https i pewnie jeszcze kilka innych protokołów. Dlatego lepiej wyszukiwanie linku po www sobie darować

chyba że ci na tym zależy, to trzeba by wówczas pokombinować..

EDIT: małe poprawki w wyrażeniu, zapomniałem o spacji i łapało za dużo.. Ogólnie to widzę że to i tak nie jest idealne rozwiązanie i będzie trzeba trochę pokombinować żeby to jakoś działało. Jednak lepszy callback