![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Przyjaciele php.pl Postów: 554 Pomógł: 0 Dołączył: 4.04.2002 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
Witam
W mojch szablonach wszechobecne są znaczniki blokow typu: Kod <cos:cos param1="1" param2="2"> jakis sobie tekst</cos:cos> Aby wychwycic te bloki uzywalem wyrazenia:
Jednak przy wiekszych stringach preg_replace_callback potrafi sie wykonywac i 12 sekund. Potem wyniki sa keszowane i dla end usera to nie ma znaczenia, jednak dla administratora przebudowywującego strone jest to nie do przyjęcia. Czy ktoś juz zagłębiał sie w problem wykrywania bloków ( autorowie systemow szablonów mowa o was (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ) i dysponuje prostym wyrażeniem lub algorytmem które by rozwiązało ten problem? pozdrawiam rzSeattle |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 554 Pomógł: 0 Dołączył: 4.04.2002 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
Poekserymentowalem trochę i wychodzi na to, że o wiele szybciej wyłapać pocztątki bloków, a potem dopiero w pętli wyłapywać całe bloki bez backreference. Chciałem to zrobic jednym wyrażeniem, czysto i szybko, jednak szwankuje to na stringach o wielkosci nawet tak małej jak 20 - 30 lini standardowego kodu html z dwoma zdefiniowanymi blokami. Dodatkowo to napewno nie wina funkcji callbackowej ponieważ gdy wsadzę tego rexpa do preg_match_all to czas parsowania jest równe długi.
No nic trzeba do tego dopisac stros z blokami i powinno funkcjonować. Jak dzisiaj sie obrobie to przedstawie przyklad tego co parsowalem w osobnym skrypcie. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 11:49 |