Strona 1 z 1

[php] wykrywanie url'a w stringu

: ndz lis 16, 2003 12:03 pm
autor: misz
potrzeba mi skrypt ktory znajdzie w stringu url'e i zamieni je na linki
np string: jakis tekst http://dva.pl jakis tekst
na: jakis tekst <h href="http://dva.pl">dva.pl</a> jakis tekst
z tym ze chcialbym zeby wykrywal tez adresy bez "http://" i maile. zabieram sie do tego jak do jeza od tygodnia i jakos nie moge wpasc na rozwiazanie a widzialem gdzies funkcje. moze ktos widzial rozwiazanie, ewetualnie podzieli sie swoim.

Re: [php] wykrywanie url'a w stringu

: ndz lis 16, 2003 3:59 pm
autor: Mayhen
spróboj z tym:
[php]
<?
$content = "np string: jakis tekst http://dva.pl jakis tekst na: jakis tekst http://dva.pl jakis tekst";

$content = preg_replace("#([\n ])([a-z]+?)://([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+]+)#i", "\\1<a href=\"\\2://\\3\" target=\"_blank\">\\2://\\3</a>", $content );
$content = preg_replace("#([\n ])www\.([a-z0-9\-]+)\.([a-z0-9\-.\~]+)((?:/[a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+]*)?)#i", "\\1<a href=\"http://www.\\2.\\3\\4\" target=\"_blank\">www.\\2.\\3\\4</a>", $content );
$content = preg_replace("#([\n ])([a-z0-9\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)?[\w]+)#i", "\\1<a href=\"mailto:\\2@\\3\">\\2@\\3</a>", $content );

print $content ;
?>
[/php]
co da:

Kod: Zaznacz cały

np string: jakis tekst <a href="http://dva.pl" target="_blank">http://dva.pl</a> jakis tekst 
na: jakis tekst <a href="http://dva.pl" target="_blank">http://dva.pl</a> jakis tekst
UPDATE:
jeśli chcesz mieć adresy napisane bez http:// miedzy <a> a </a> to pierwsza zmiana wyglada tak:
[php]$content = preg_replace("#([\n ])([a-z]+?)://([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+]+)#i", "\\1<a href=\"\\2://\\3\" target=\"_blank\">\\3</a>", $content);[/php]
w drugiej bez 'www':
[php]$content = preg_replace("#([\n ])www\.([a-z0-9\-]+)\.([a-z0-9\-.\~]+)((?:/[a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+]*)?)#i", "\\1<a href=\"http://www.\\2.\\3\\4\" target=\"_blank\">\\2.\\3\\4</a>", $content);
[/php]

Re: [php] wykrywanie url'a w stringu

: ndz lis 16, 2003 4:06 pm
autor: misz
wielkie dzieki :D

Re: [php] wykrywanie url'a w stringu

: ndz lis 16, 2003 4:09 pm
autor: Mayhen
dodałem update dzieki ktoremu tekst pozbawiony jest 'http://' - ale linki nadal działają.