![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 27.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam problem z zamianą tekstu w postaci "cośtam cośtam www.adresik.com/super,212, cośtam cośtam" na hyperlink (<a>) Kod $txt=preg_replace("#(^|[\n ])((www|ftp)\.[^ \"\t\n\r<]*)#is", "$1<a href=\"http://$2\">$2</a>", $txt); Wyrzuci niepoprawnego linka Kod <a href="http://www.adresik.com/super,212,">http://www.adresik.com/super,212,</a> Wiecie jak zrobić wyrażenie regularne? Ten post edytował Krowa 14.11.2008, 19:54:44 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 076 Pomógł: 62 Dołączył: 6.03.2005 Skąd: Wroc Ostrzeżenie: (0%) ![]() ![]() |
a jak ma wygladac poprawny link z tego przykladu ?
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 27.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Oczekiwany efekt preg_replace [chodzi o to, żeby nie brać ostatniego przecinka do linka (jeśli występuje)]:
Kod <a href="http://www.adresik.com/super,212">http://www.adresik.com/super,212</a>, Wymyśliłem coś takiego Kod $text = preg_replace("#(^|\s)(www\.\S+)(,?)#i","HREF=$2",$text); Ale nie działa tak jak powinno (np. przy linkach nie zawierających przecinka) Udało się (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Kod $text='Cośtam www.xxx.com/display,99, www.yyy.com.pl/display,99, cośtam www.eeeee.pl cośtam'; $text = preg_replace("#(^|\s)(www\.\S+)(,)#i","$1<a href='http://$2'>$2</a>$3",$text); Wynik: Kod Cośtam <a href='http://www.xxx.com/display,99'>www.xxx.com/display,99</a>, <a href='http://www.yyy.com.pl/display,99'>www.yyy.com.pl/display,99</a>, cośtam www.eeeee.pl cośtam Czy da się w tym preg'u dodać funkcjonalność zamiany trzeciego linku z $text (www.eeeee.pl) do postaci <a href=...>? Ten post edytował Krowa 16.11.2008, 20:52:30 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 90 Pomógł: 2 Dołączył: 3.12.2004 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 27.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Da się, pytanie tylko jak to zrobić? :] Czy muszę użyć kilku funkcji preg_replace żeby osiągnąć pożądany efekt?
Kod $text='Cośtam www.xxx.com/display,99, www.yyy.com.pl/display,99, cośtam www.eeeee.pl cośtam'; $text=preg_replace("#(^|\s)(www\.\S+)(,)?#i","$1<a href='http://$2'>$2</a>$3",$text); Wynik nie jest taki jaki ma być: Kod 1CoĹ�tam <a href='http://www.xxx.com/display,99,'>www.xxx.com/display,99,</a> <a href='http://www.yyy.com.pl/display,99,'>www.yyy.com.pl/display,99,</a> coĹ�tam <a href='http://www.eeeee.pl'>www.eeeee.pl</a> coĹ�tam
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 90 Pomógł: 2 Dołączył: 3.12.2004 Ostrzeżenie: (0%) ![]() ![]() |
Oczywiście, przepraszam, mój błąd. Myślę, że teraz będzie ok:
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 07:39 |