![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 183 Pomógł: 0 Dołączył: 19.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Mam pewną zagwostkę. Powiedzmy, że mam taki tekst:
Jakie wyrażenie zastosować, by zostawić tylko 1/2/3/4/X linki w tym tekście, a pozostałe zlikwidować i zostawić tylko tekst pomiędzy <a></a> ? Oczywiście przyjmując, że:
Czyli np dla "pseudofunkcji" zostaw_linki(2) efekt (dla tekstu powyżej) byłby:
Ten post edytował barat 8.12.2009, 10:11:14 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
podałem przykąłd jak użyć callback do obiektów bez zmiennych statycznych/globalnych ;p - obiektowo najłatwiej napisać sterownik (gdzie to tylko zestaw funkcji z if else...), używając funkcji preg_replace_callback text przeszuka tylko raz...
co prawda nie z linkami ale pisałem coś bardziej złożonego raz i jest to świetna sprawa - preg_replace_callback wypada też deczko szybciej niż sam preg_replace jeśli nic się nie robi - pisze o tym w manualu (choć dawno to czytałem i nie pamiętam gdzie - podejrzewam, że na stronie funkcji (IMG:style_emoticons/default/winksmiley.jpg) ) ps. preg_replace_callback przekazuje do funkcji callback bodajże tylko jeden parametr - znalazłem jeden swój skrypcik... co ważniejsze ten parametr jest tablicą - tak więc pisząc funkcję callback niech wewnątrz niej zrobi print_r($wejsciowa_zmienna); by zobaczyć gdzie co siedzi - zależy to od skonstruowanego wyrażenia regularnego (czyli w zasadzie tak jak w preg_match) poza tym inne dosyć fajne rozwiązanie ale na starcie jeśli nigdy tym się nie "bawił" jest przeszukanie tego tekstu przez DOM - ale na razie to rozwiązanie odradzam jeśli nigdy się nim nie bawił gdyż zrozumieć Mu go będzie ciężej (IMG:style_emoticons/default/winksmiley.jpg) Ten post edytował zegarek84 8.12.2009, 12:25:10 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.09.2025 - 20:53 |