mam plik logu pewnej gry, przykładowa linijka wygląda tak:
[30 Nov 11:53:09] PARTY [Caelldfssion] jakiś tam tekst
no i mam takie pliki utworzone przez siebie:
dictionary.txt (słownik) o przykładowej zawartości:
.*kur.* (na razie jeden wyraz)
oraz channels.txt (schematy kanałów do przeglądania) i przykładowej zawartości:
^\[.. ... ..:..:..\] PARTY \[.*\]
^\[.. ... ..:..:..\] ALL [\[.*\]
^\[.. ... ..:..:..\] ALLIANCE \[.*\]
^\[.. ... ..:..:..\] TRADE \[.*\]
^\[.. ... ..:..:..\] HERO_VOICE \[.*\]
i teraz sedno problemu... stworzyłem skrypt, który niestety nie działa i bardzo obciąża sprzęt bo wyszukuje w 30MB pliku (około 400000 linijek) i dla każdej jest odpowiednia ilość kombinacji wyszukiwania, dla w/w plików jest to 5^1 kombinacji (5), skrypt wygląda tak jak kod poniżej, jeżeli ktoś ma pomysł jak to dobrze rozwiązać aby działało i nie obciążało aż tak sprzętu to prosiłbym o pomoc
skrypt:
<?php $search; $founded; $k=0; for ($i=0; $i<sizeof($channels); $i++){ for ($j=0; $j<sizeof($dictionary); $j++){ $k++; } } for($i=0; $i<sizeof($search); $i++){ } else { $founded[0]=$row; } } } } for($i=0; $i<sizeof($founded); $i++){ } ?>
wcześniej wczytałem cały 30MB plik do tablicy funkcją file() i nie było to dobre rozwiązanie, także obciążało, stąd chciałem przesiąść się na to, ale jak widać nieskutecznie.
W kodzie mogą być drobne błędy jednak całość powinna być w miarę dobrze zrozumiana. Z góry dziękuję za pomoc.