SHiP
19.07.2006, 12:32:39
Zaczałem pisać własny parser szablonów... Daltego też mam kilka pytan dotyczących szybkości działania skryptu... Metoda jest taka, najpierw odnajduje wszystkie bloki { } za pomoca preg_mach_all nastepnie podmieniam odpowiednie bloki po przez str_replace. Nasuwa mi się pytanie czy ciągłe operowanie na całym tekscie nie bedzie zbyt wolne...?
Czy opłaci mi się podzieliśc plik na linijki i na każdej linijce wykonywać oddzielnie preg_mach_all a nastepnie str_replace... Wykluczyło by to również problem z funkcją str_replace(nie wiem co zrobić aby podmieniła tylko jeden najbliższy blok a nie wszystkie jakie znajdzie)... a może napisać własną funkcje znajdująca po kolei nawiasy klamrowe, wyodrebniala by je za pomocą substr i strpos... Jakieś sugestie?
mariuszn3
20.07.2006, 16:33:32
Myślę, że wyrażenia regularne będą lepszym rozwiązaniem niż funkcje z algorytmem zbudowanym na strpos i substr.. po prostu wyrażenia regularne już działają z poziomu języka C
A co do najlepszego rozwiązania to może przyjżyj się jak to jest rozwiązane w smart'ach, możesz sobie przejrzeć cały kod, który tam odpowiada za rozbiór szablonu.
SHiP
20.07.2006, 19:20:53
No cóż... nikt mi nie odpowiadał i napisałem 3 wersje... i tak ;] Najwolniej dziala preg_match_all i str_replace bez podziału na linijki, tak w miare szybko działa własny algorytm wyszukiwania i podmieniania a najszybciej preg_mach_all i srt_replace z podziałem na linijki ;] W sumie różnice nie sa takie duże(miedzy każdym testem około 0.001s ale zawsze to coś

)