Nie jestem żadnym specem od php, potrzebuje napisać pewien skrypt i go napisałem ale wydaje mi się on bardzo nieoptymalny.
Otóż problem wygląda tak: posiadam plik dane.txt z indeksami produktów, który ma następujący format:
Kod
60
62
63
64
65
67
72
77
78
.
.
.
62
63
64
65
67
72
77
78
.
.
.
I tak łącznie ok. 20 tysięcy linii.
Potrzebuję coś z tym zrobić, ale że serwer nie pozwoli na wykonywanie skryptu przez wiele godzin, więc wpadłem na następujący pomysł. Co 5 minut uruchamiany jest ten skrypt (z crona) pobierający za każdym razem po 5 indeksów
Oto moje wypociny:
<?php $koniec = $nr + 5; $i = 0; $i++; // podwyższenie zmiennej $i o jeden } for ($nr; $nr < $koniec; $nr++) { } ?>
Działa dokładnie tak jak tego oczekuję. O ile przy początkowych liniach wszystko jest OK, to np. przy końcowych liniach, przy każdym wywołaniu skryptu trzeba przeczytać wszystkie linie aby dojść do tej właściwej. Według mnie to mało optymalne. Próbowałem szukać informacji o tym jak lepiej można by to zrobić. Jedyne co znalazłem to wczytywanie całego pliku do tablicy, operacje na niej i zapisanie jej spowrotem do pliku. Ale to jest chyba jeszcze mniej optymalne (o ile odczyt zajmowałby tyle samo to w rozwiązaniu z tablicą dochodzi jeszcze zapis). Chodzi mi o to, żeby przy każdym wywołaniu skryptu, odczytywane były pierwsze 5 wierszy i od razu usuwane, jednak beż użycia tablicy do tego.
Z góry dziękuję za wszelkie podpowiedzi, ewentualnie uwagi co zrobiłem źle w podanym skrypcie.
Pozdrawiam