Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wyrażenie regularne - pomoc - usuwanie linków
Kojak
post 22.09.2010, 12:50:56
Post #1





Grupa: Zarejestrowani
Postów: 70
Pomógł: 5
Dołączył: 11.09.2007
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Witam. Mam pewien problem. Próbuję napisać wyrażenie regularne które usuwa z podanego tekstu wszystkie linki. Usuwanie linków które objęte są znacznikami <a>...</a> mam napisaną i dobrze działa. Ale ponadto chciałem mieć jeszcze usuwanie linków bez <a> (np. http://forum.php.pl lub www.php.net). Próbowałem coś takiego:

  1. $text = 'testowy adres: http: //www.wp.pl, a tu jest jeszcze jakis tekst'; // między http: a slashem tutaj celowo dałem spację bo robi z tego hiperłącze na forum, normalnie nie ma tam odstępu
  2. $text = preg_replace("/(http|ftp|news)s?:\/(.+)(\s){1}/i", "", $text);
  3. echo $text; // testowy adres: tekst


Problem jest taki że powinien przy pierwszej spacji kończyć, ale on szuka do ostatniej. Co jest źle w tym wyrażeniu regularnym?

Z góry dziękuję za pomoc.

Ten post edytował Kojak 22.09.2010, 12:52:36
Go to the top of the page
+Quote Post
nospor
post 22.09.2010, 12:56:43
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




nie: .+
a: .*?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Kojak
post 22.09.2010, 13:26:02
Post #3





Grupa: Zarejestrowani
Postów: 70
Pomógł: 5
Dołączył: 11.09.2007
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Dzięki, działa smile.gif

Ale jeszcze jedna sprawa... jak mam jeden link i on kończy stringa (np: "jakiś tam tekst http: //www.wp.pl") to już nie usuwa, bo nie znajduje spacji. Jak zrobić alternatywę że sprawdza aż napotka spację lub napotka koniec stringu?
Go to the top of the page
+Quote Post
nospor
post 22.09.2010, 13:28:56
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No to poprostu dodaj ten koniec
/(http|ftp|news)s?:\/(.*?)(\s|$)/i

A mozesz tez wogole powiedziec: wszystko tylko nie spacja
/(http|ftp|news)s?:\/[^\s]+/i


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 27.06.2025 - 17:09