![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 73 Pomógł: 4 Dołączył: 15.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam taki oto problem. Mam tekst, w którym występuje mniej więcej coś takiego: itd. Moim celem jest uzyskanie takiego efektu, że gdy identyczne $różny_znak występujące obok siebie (czyli np.: "tekst-A, tekst-A") zamieniane jest to na: "tekst-AA". Przy czym gdy ponownie spotykane jest "tekst-A" oraz "tekst-AA" również jest to zamieniane na "tekst-AAA" itd. (chodzi o dodawanie, takie zbijanie w jedno występujących obok siebie). Próbowałem wykorzystać do tego pętlę while i str_replace, jednak jest to bardzo niewydajne i czasy wykonywania skryptu są okropne... Jednak nie mam innego pomysłu na to. Czy ktoś ma jakąś ideę, jak to sprawnie i wydajnie rozwiązać? Z góry dzięki, pozdrawiam! Ten post edytował mch.frnc 13.09.2011, 12:30:55 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 226 Pomógł: 61 Dołączył: 20.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli masz PHP starsze niż 5.3, użyj zwykłej funkcji zamiast anonimowej (patrz przyklady na: preg_replace_callback) Jeśli chcesz zrozumieć jak to działa poczytaj o wyrażeniach regularnych ze szczególnym naciskiem na tzw. back references Ten post edytował Noidea 13.09.2011, 13:26:46 -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 73 Pomógł: 4 Dołączył: 15.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Bardzo Ci dziękuję, tym bardziej, że nie spodziewałem się gotowego rozwiązania:))
Tymczasem pojawił się kolejny problem, aczkolwiek trochę podobny: zamiana
Ale myślę, że po lekkiej modyfikacji Twojego kodu uda mi się to osiągnąć ![]() Wielkie dzięki za pomoc raz jeszcze! |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 17:17 |