![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 16.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Powyższy kod działa nie do końca tak, jakbym chciał. Zamiast wyłapać wszystkie powtórzenia "{ELSEIF ddd}ddd" łapie tylko ostatnie wystąpienie. Innymi słowy, zamiast:
oczekuję rezultatu:
Macie może pomysł jak to zmienić? Z góry dzięki, MS |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 1 Dołączył: 1.02.2004 Skąd: warszawa Ostrzeżenie: (0%) ![]() ![]() |
Nie znam się na wyrażeniach, ale jeżeli chcesz wyciągnąć powtarzające się dane to użyj preg_match_all
Jeżeli dobrze widzę, to w tym momencie narzucasz strukturę if,elseif,else, więc powtórzenie elseif jest pomijane Ten post edytował danek 4.11.2008, 22:20:53 -------------------- E-Danek.info
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 16.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Niestety, preg_match_all mogło by posłużyć do wyłapania n powtórzeń całego wyrażenia, a nie jego części.
Nie tędy droga. Poza tym preg_match w tym przypadku to tylko przyklad zobrazowania idei. Finalnie zamiast preg_match będzie preg_replace_callback. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 1 Dołączył: 1.02.2004 Skąd: warszawa Ostrzeżenie: (0%) ![]() ![]() |
Ale to ma działać konkretnie z tym przykładem, czy z większą ilością możliwości?
Jeżeli tylko tu to dodaj do wyrażenie jeszcze 1 elseif, a jeżeli nie to ja bym to załatwił preg_match_all do ifów + preg_match do elsów. Ogólnie jeżeli chcesz to zrobić w pregu, to musisz przewidzieć jakąś określoną max ilość elseif-ów -------------------- E-Danek.info
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 16.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Ma działać z nieokreśloną ilością ELSEIF (również 0) oraz z lub bez ELSE.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 1 Dołączył: 1.02.2004 Skąd: warszawa Ostrzeżenie: (0%) ![]() ![]() |
Mogę się mylić, ale nie rozwiążesz tego w ten sposób.
Próbowałem dublować wpis elseif, próbowałem ograniczyć znaki (niedopuszczanie { ), ale to nic nie dało. Wydaje mi się, że po prostu musisz do tego użyć jakiegoś preg_match_all albo czegoś podobnego i po prostu rozbić każdego if-a na elseify i else-y -------------------- E-Danek.info
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 23.06.2025 - 19:06 |