Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wykrywanie odnośników
Forum PHP.pl > Forum > PHP
mapy
Jestem początkującym w php i nie wiem jak zrobić wykrywanie linków stron internetowych i adresów e-mail. Chodzi mi o to, że jak użytkownik wpisze w np. tworzonym przeze mnie Shoutbox`ie adres jakiejs strony (np. http:\\onet.pl lub www.onet.pl lub nazwa@email.domena ewentualnie ftp:// i gg: ) to automatycznie sie to zamieni w odnośnik. Np po wpisaniu http://onet.pl zamieni się na:
  1. <a href="http://onet.pl" target="_blank"><b>http://onet.pl</b></a>


Analogicznie jeśli chodzi o email, gg...

Bardzo będę wdzięczny za pomoc.
PS: Dzisiaj się zarejestrowałem i jest to mój pierwszy post więc prosze o wyrozumiałość.
bigZbig
Wypróbuj
  1. <?php
  2. function auto_link($str) {
  3. $str = preg_replace('#(b|http://)(www.)((w+.)+w+)#', ' <a href="http://23" target="_blank">23</a>', $str);
  4. $str = preg_replace('/s(w+)(@)(S+)/', ' <a href="mailto:123">123</a>', $str);
  5. return $str;
  6. }
  7. ?>
bigZbig
No przetestuj funkcję.
Cysiaczek
Można też łopatologicznie - odnajdywanie w dowolnym stringu ciągu 'http://', 'http://www.' i zaznaczanie fragmentu stringu aż do wystapienia SPACJI, która jest naturalnym miejscem końca adresu. Reszta to już tylko zamiana.
bigZbig
@Cysiaczek - spacja nie zawsze musi byc koncem adresu. Patrz [b]regexp - automatyczne linki url e-mail... pomocy sad.gif[/b]
Athlan
http://bbcode.strefaphp.net - piękny generator pięknej funkcji smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.