Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Kilka pytan, operacje na stringach, szybkosc ...
SHiP
post
Post #1





Grupa: Zarejestrowani
Postów: 697
Pomógł: 47
Dołączył: 19.12.2003
Skąd: Lublin

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
mariuszn3
post
Post #2





Grupa: Zarejestrowani
Postów: 352
Pomógł: 0
Dołączył: 22.01.2006

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
SHiP
post
Post #3





Grupa: Zarejestrowani
Postów: 697
Pomógł: 47
Dołączył: 19.12.2003
Skąd: Lublin

Ostrzeżenie: (0%)
-----


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ś (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) )

Ten post edytował SHiP 20.07.2006, 19:22:42
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 19:29