Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]preg_match przyspieszenie przeszukiwania
no_face
post
Post #1





Grupa: Zarejestrowani
Postów: 346
Pomógł: 23
Dołączył: 28.11.2004

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


Witajcie,

potrzebuje jakiegos sposobu by przyspieszyc przeszukiwania duzych plikow tekstowych. Chcialbym wyszukiwac zadana fraze plus 5 linijek z gory i z dolu.

Obecnie wykorzystujac takie zapytanie:
Kod
/(.+\r\n|.+\n){5}.+fraza_fraza.+(\r\n.+|\n.+){5}/


otrzymuje prawidlowy wynik, lecz przeszukanie jednego wyniku zajmuje b. duzo czasu. Mozna byloby to jakos usprawnic? Jakies wczesniejsze zawezenie pola poszukiwania? Wyciecie za pomoca innych funkcji?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




A próbowałeś pobawić się z strpos?
A dokładniej to
fopen + odczytanie linii + strpos

Ten post edytował wookieb 6.02.2010, 18:28:42


--------------------
Go to the top of the page
+Quote Post
DiH
post
Post #3





Grupa: Zarejestrowani
Postów: 251
Pomógł: 34
Dołączył: 7.01.2010

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


Możesz również spróbować przeszukiwać plik dzieląc go na części, operując potem na tych nich i łącząc wyniki pod koniec. W tym samym czasie przeszukujesz linijki 0-1000, 1001 - 2000 etc. O ile działa to przy wszelkiego rodzaju sortowaniach zewnętrznych, to akurat tutaj po prostu strzelam. A nóż pomoże. Proponuję sprawdzić szybkość wykonywania skryptu poprzez microtime() i porównać czasy.
Go to the top of the page
+Quote Post
no_face
post
Post #4





Grupa: Zarejestrowani
Postów: 346
Pomógł: 23
Dołączył: 28.11.2004

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


Cytat(DiH @ 6.02.2010, 23:22:47 ) *
Proponuję sprawdzić szybkość wykonywania skryptu poprzez microtime() i porównać czasy.

W moim przypadku, gdzie pliki z danymi waza niezmiernie nieoptymalnie, swobodnie mozna byloby zastosowac time() lub nawet date('H') winksmiley.jpg

Skutecznie rozwiazuja problem petelki, strpos.

Dziekuje i pozdrawiam.

Ten post edytował no_face 9.02.2010, 22:07:47
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 Aktualny czas: 20.08.2025 - 08:58