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.np string: jakis tekst http://dva.pl jakis tekst
na: jakis tekst <h href="http://dva.pl">dva.pl</a> jakis tekst
[php] wykrywanie url'a w stringu
[php] wykrywanie url'a w stringu
potrzeba mi skrypt ktory znajdzie w stringu url'e i zamieni je na linki
-
Mayhen
- Nowy

- Posty: 158
- Rejestracja: śr lip 10, 2002 9:21 pm
- Lokalizacja: 21°41' E | 50°35' N
- Kontakt:
Re: [php] wykrywanie url'a w stringu
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:
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]
[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 tekstjeś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]
Ostatnio zmieniony ndz lis 16, 2003 4:07 pm przez Mayhen, łącznie zmieniany 1 raz.
Re: [php] wykrywanie url'a w stringu
wielkie dzieki 
-
Mayhen
- Nowy

- Posty: 158
- Rejestracja: śr lip 10, 2002 9:21 pm
- Lokalizacja: 21°41' E | 50°35' N
- Kontakt:
Re: [php] wykrywanie url'a w stringu
dodałem update dzieki ktoremu tekst pozbawiony jest 'http://' - ale linki nadal działają.
