Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Kilka pytan, operacje na stringach, szybkosc ...
SHiP
post 19.07.2006, 12:32:39
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?


--------------------
Warsztat: Kubuntu, PhpStorm, Opera
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
mariuszn3
post 20.07.2006, 16:33:32
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 20.07.2006, 19:20:53
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ś winksmiley.jpg)

Ten post edytował SHiP 20.07.2006, 19:22:42


--------------------
Warsztat: Kubuntu, PhpStorm, Opera
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 22:57