![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 813 Pomógł: 34 Dołączył: 18.03.2007 Skąd: o stamtąd Ostrzeżenie: (0%) ![]() ![]() |
Witam
zacząłem się bawić wyrażeniami regularnymi i chciałem napisać funkcje która po podaniu tekstu wszystkie adresy url (umieszczone pomiędzy ) zamienia na aktywne hiperłącza, wszytkie czyli mam na myśli 1 - http://google.pl 2 - http://www.google.pl 3 - www.google.pl nie potrafię sobie poradzić jak odróżnić czy adres między ma już http:// próbowałem to rozwiązać w ten sposób:
ale niestety w niczym mi to nie pomaga... jak mam osiągnąć taki rezultat? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 152 Pomógł: 1 Dołączył: 17.09.2006 Ostrzeżenie: (0%) ![]() ![]() |
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 813 Pomógł: 34 Dołączył: 18.03.2007 Skąd: o stamtąd Ostrzeżenie: (0%) ![]() ![]() |
może i podobne ale nie to samo...
ja próbuje z całego tekstu pozamieniać wszystkie adresy i problem sie pojawia gdy w tekście są mieszane ulr'e jeśli w tekście jest jeden url lub wszytkie są takie same (albo z http:// albo bez) funkcja sobie daje rade. Zrobiłem trochę po swojemu i chamsko ale działa: kod:
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
Zapisz sobie to wyrażenie w ten sposób:
- Na początku znajdź - Za nim może (ale nie musi: ?) występować http:// - Później może (ale nie musi: ?) występować www. - Później będą jeszcze jakieś znaki aż do najbliższego A składasz link tak: http:// + to co znaleziono pod 3 pauzą + to co znaleziono pod 4 pauzą -------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 813 Pomógł: 34 Dołączył: 18.03.2007 Skąd: o stamtąd Ostrzeżenie: (0%) ![]() ![]() |
Cytat - Za nim może (ale nie musi: ?) występować http:// ale jeśli wystąpi to link będzie wyglądał Cytat
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
Cytat("Kicok") A składasz link tak: http:// + to co znaleziono pod 3 pauzą + to co znaleziono pod 4 pauzą `2 pauzę` (czyli tą, którą wychwytujesz "http://") ignorujesz, a później na sztywno dodajesz "http://" podczas składania linku. Można by do tego dodać sprawdzanie innych protokołów, np: https:// Wtedy musiałbyś sprawdzić, czy `2 pauza` coś wychwyciła. Jeśli tak, to to wstawiasz na początek linku. Jeśli `2 pauza` jest pusta, to dodajesz tam domyślne "http://". -------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 813 Pomógł: 34 Dołączył: 18.03.2007 Skąd: o stamtąd Ostrzeżenie: (0%) ![]() ![]() |
po waszych wskazówkach wyszło mi to tak:
Kod $co = preg_replace('/\[url\](http:\/\/)?(www\.)?([a-zA-Z0-9@#%\&_=?\/\.-]+\.)([a-zA-Z0-9]{2,4})?\[\/url\]/','<a href="http://www.\\3\\4">www.\\3\\4</a>',$co); na razie nie znalazłem żadnych problemów |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 11:42 |