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?