![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 375 Pomógł: 20 Dołączył: 28.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
Zacząłem implementować system szablonów do systemu wortalowego. Dość trudnym zadaniem jest napisanie kompilatora, który zamieni kod HTML z wstawkami do PHP. http://www.unit1.pl/pb-673 (zawiera błędy), przykład szablonu: http://www.unit1.pl/pb-674
Gdy jest więcej niż 1 pętla lub instrukcja IF, zaczynają się problemy, ponieważ po przetworzeniu pierwszego IF zmienia się pozycja początku lub końca drugiego. Podwójnej pętli nie testowałem. Wynik: http://www.unit1.pl/pb-675 (błąd pod koniec pliku). Wprawdzie kłopot można ominąć, kombinując z liczeniem pozycji... Może jednak da się uzyskać oczekiwany efekt łatwiej, a nawet wydajniej? Można też analizować komentarze <!-- IF ... --> i <!-- ELSE --> osobno oraz bez rekurencji, a potem porównać ilość zamian - ale nie dla pętli, gdyż ingeruję jeszcze w zmienne znajdujące się w niej. Może jednak lepszym wyjściem są wyrażenia regularne? Jeśli tak, jak je poprawnie napisać, aby uzyskać odpowiedni efekt, a skrypt wynikowy nie rozsypał się w wyżej omówionym przypadku lub po dodaniu innych znaczników? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 18:54 |