[PHP] korekta przy funkcji eregi_replace

0

Witam

Oto kod, którzy tworzy linki czyli robi z nich możliwe do 'kliknięcia':

// http://
      $buffer = eregi_replace("(^|[ \n\r\t])((http(s?)://)(www\.)?([a-z0-9_-]+(\.[a-z0-9_-]+)+)(/[^/ \n\r]*)*)","\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $message); 

// www.
      $buffer = eregi_replace("(^|[ \n\r\t])(www\.([a-z0-9_-]+(\.[a-z0-9_-]+)+)(/[^/ \n\r]*)*)","\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>", $buffer); 

Wszystko działa pięknie aż w linku nie wystąpi znaczek Slash , czyli "/" .. - wtedy wszystko się krzaczy, nie zamyka tagu A ..

Interesuje mnie przerobienie tej funkcji, abym mógł taki znak wpisywać..

Myślałem, że starczy zmienić fragment <font color="brown">[a-z0-9_-]</span> na <font color="olive">[a-z0-9_/-]</span> .. ale się myliłem.

Za pomoc z góry thx.

0

a sptóbuj:
zamiast [a-z0-9_-] dać [a-z0-9_/-]

// http://
      $buffer = eregi_replace("(^|[ \n\r\t])((http(s?)://)(www\.)?([a-z0-9_\/-]+(\.[a-z0-9_\/-]+)+)(/[^/ \n\r]*)*)","\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $message);

// www.
      $buffer = eregi_replace("(^|[ \n\r\t])(www\.([a-z0-9_\/-]+(\.[a-z0-9_\/-]+)+)(/[^/ \n\r]*)*)","\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>", $buffer); 

1 użytkowników online, w tym zalogowanych: 0, gości: 1